linux/drivers/net/ethernet/intel/i40e
Jacob Keller 1596b5ddbf i40e: restore workaround for removing default MAC filter
A previous commit 53cb6e9e89 ("i40e: Removal of workaround for simple
MAC address filter deletion") removed a workaround for some
firmware versions which was reported to not be necessary in production
NICs. Unfortunately this workaround is necessary in some configurations,
specifically the Ethernet Controller XL710 for 40GbE QSFP+ (8086:1583).

Without this patch, the mentioned NICs with current firmware exhibit
issues when adding VLANs, as outlined by the following reproduction:

  $modprobe i40e
  $ip link set <device> up
  $ip link add link <device> vlan100 type vlan id 100
  $dmesg | tail
  <snip>
  kernel: i40e 0000:82:00.0: Error I40E_AQ_RC_EINVAL adding RX
filters on PF, promiscuous mode forced on

This results in filters being marked as FAILED and setting the device in
promiscuous mode.

The root cause of receiving the -EINVAL error response appears to be due
to a conflict with the default MAC filter which still exists on the
default firmware for this device. Attempting to add a new VLAN filter on
the default MAC address conflicts with the IGNORE_VLAN setting on the
default rule.

Change-ID: I4d8f6d48ac5f60cfe981b3baad30eb4d7c170d61
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2016-12-06 20:43:44 -08:00
..
i40e_adminq_cmd.h i40e: Add support for HMC resource and profile for X722 2016-08-19 21:26:58 -07:00
i40e_adminq.c i40e: Implementation of ERROR state for NVM update state machine 2016-10-31 14:26:40 -07:00
i40e_adminq.h i40e: Move NVM variable out of AQ struct 2016-04-06 18:45:11 -07:00
i40e_alloc.h
i40e_client.c i40e: reopen client after reset 2016-10-28 23:28:39 -07:00
i40e_client.h i40e: reopen client after reset 2016-10-28 23:28:39 -07:00
i40e_common.c i40e: set broadcast promiscuous mode for each active VLAN 2016-12-02 23:32:37 -08:00
i40e_dcb_nl.c i40e: Change some messages from info to debug only 2015-10-15 01:58:41 -07:00
i40e_dcb.c i40e: refactor DCB function 2016-02-16 19:04:08 -08:00
i40e_dcb.h i40e: Add parsing for CEE DCBX TLVs 2015-10-08 15:11:38 -07:00
i40e_debugfs.c i40e: store MAC/VLAN filters in a hash with the MAC Address as key 2016-10-31 14:26:40 -07:00
i40e_devids.h i40e: Remove device ID 0x37D4 2016-07-22 00:07:04 -07:00
i40e_diag.c i40e: use BIT and BIT_ULL macros 2015-07-23 05:33:55 -07:00
i40e_diag.h
i40e_ethtool.c i40e/i40evf: replace for memcpy with single memcpy call in ethtool 2016-12-02 23:35:47 -08:00
i40e_fcoe.c i40e: store MAC/VLAN filters in a hash with the MAC Address as key 2016-10-31 14:26:40 -07:00
i40e_fcoe.h i40e: use BIT and BIT_ULL macros 2015-07-23 05:33:55 -07:00
i40e_hmc.c i40e: fix an uninitialized variable bug 2016-05-14 00:21:51 -07:00
i40e_hmc.h i40e: use BIT and BIT_ULL macros 2015-07-23 05:33:55 -07:00
i40e_lan_hmc.c i40e: use explicit cast from u16 to u8 2015-12-12 21:08:26 -08:00
i40e_lan_hmc.h i40e/i40evf: Big endian fixes for handling HMC 2014-06-26 04:44:57 -07:00
i40e_main.c i40e: restore workaround for removing default MAC filter 2016-12-06 20:43:44 -08:00
i40e_nvm.c i40e: Implementation of ERROR state for NVM update state machine 2016-10-31 14:26:40 -07:00
i40e_osdep.h move io-64-nonatomic*.h out of asm-generic 2015-10-15 00:21:07 +02:00
i40e_prototype.h i40e: set broadcast promiscuous mode for each active VLAN 2016-12-02 23:32:37 -08:00
i40e_ptp.c i40e: replace PTP Rx timestamp hang logic 2016-10-31 14:26:40 -07:00
i40e_register.h i40e: Expose some registers to program parser, FD and RSS logic 2016-02-18 23:49:31 -08:00
i40e_status.h
i40e_txrx.c i40e: Reorder logic for coalescing RS bits 2016-10-31 14:26:40 -07:00
i40e_txrx.h i40e: simplify txd use count calculation 2016-12-06 20:40:50 -08:00
i40e_type.h i40e: Add protocols over MCTP to i40e_aq_discover_capabilities 2016-12-02 22:59:04 -08:00
i40e_virtchnl_pf.c i40e: set broadcast promiscuous mode for each active VLAN 2016-12-02 23:32:37 -08:00
i40e_virtchnl_pf.h net: Update API for VF vlan protocol 802.1ad support 2016-09-24 08:01:26 -04:00
i40e_virtchnl.h i40e: group base mode VF offload flags 2016-10-28 23:28:39 -07:00
i40e.h i40e: Driver prints log message on link speed change 2016-12-06 20:25:13 -08:00
Makefile i40e: Add support for client interface for IWARP driver 2016-02-29 17:10:52 -05:00