• Jacob Keller's avatar
    i40e: restore workaround for removing default MAC filter · 1596b5dd
    Jacob Keller authored
    A previous commit 53cb6e9e ("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: default avatarJacob Keller <jacob.e.keller@intel.com>
    Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
    Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    1596b5dd
i40e_main.c 325 KB