DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [Bug 648] i40e source pruning causes packets to be dropped
@ 2021-03-04 23:09 bugzilla
  0 siblings, 0 replies; only message in thread
From: bugzilla @ 2021-03-04 23:09 UTC (permalink / raw)
  To: dev

https://bugs.dpdk.org/show_bug.cgi?id=648

            Bug ID: 648
           Summary: i40e source pruning causes packets to be dropped
           Product: DPDK
           Version: 20.11
          Hardware: x86
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: ethdev
          Assignee: dev@dpdk.org
          Reporter: mgsmith@netgate.com
  Target Milestone: ---

Created attachment 146
  --> https://bugs.dpdk.org/attachment.cgi?id=146&action=edit
patch

Using DPDK 20.11 with X710 or XL710 NICs, if a VRRP virtual MAC address is
added to a port using rte_eth_dev_mac_addr_add(), advertisements from a higher
priority VRRP peer which are received on that port are dropped by the NIC
before the software gets a chance to see them because the inbound packets
originate from the same source MAC address which was added. This breaks VRRP.

The issue has been reported on DPDK dev mailing list a couple of years ago
(http://mails.dpdk.org/archives/users/2018-May/003128.html), but is still
present.

It also seems to affect linux kernel networking with i40e devices
(https://lore.kernel.org/lkml/20200831103512.00001fab@intel.com/), though there
is a workaround available for kernel networking. Running 'ethtool
--set-priv-flags ethX disable-source-pruning on' prevents the packets from
being dropped.

There is no available method that I have found to disable source pruning in the
DPDK i40e driver. Can one be added? Or can the default behavior be changed so
that it is not enabled by default? 

Using linux kernel networking, the kernel source code that is called when this
flag is set is here
https://github.com/torvalds/linux/blob/3cb60ee6323968b694208c4cbd56a7176396e931/drivers/net/ethernet/intel/i40e/i40e_main.c#L13548.
Adding a patch to invoke similar logic to my local DPDK build corrected the
problem. My patch just did this unconditionally since there's no flag to
indicate that source pruning should be disabled in the DPDK i40e driver. I will
attach the patch that I used.

The problem was observed in VPP
(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=summary) version 21.01 using the
VRRP plugin. It was reported by multiple users. It affects both X710 and XL710
devices and was observed on both bare metal and using PCI passthrough on
VMware. I reproduced the issue on a VMware VM using PCI passthrough with an
X710 and tested with the attached patch to correct the issue.

-- 
You are receiving this mail because:
You are the assignee for the bug.

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-03-04 23:09 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-04 23:09 [dpdk-dev] [Bug 648] i40e source pruning causes packets to be dropped bugzilla

DPDK patches and discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://inbox.dpdk.org/dev/0 dev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dev dev/ https://inbox.dpdk.org/dev \
		dev@dpdk.org
	public-inbox-index dev

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.dev


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git