]> git.baikalelectronics.ru Git - kernel.git/commit
igc: Reject NFC rules with multiple matches
authorAndre Guedes <andre.guedes@intel.com>
Tue, 12 May 2020 17:35:52 +0000 (10:35 -0700)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Fri, 29 May 2020 03:13:11 +0000 (20:13 -0700)
commit851f58147a4eac0569d5b33906f2d0580a822801
tree44b1a27522cef8ff2c5901c8aa0c480e65e53775
parent1661496c8e6964da9bd19d29951511d2aea9c77a
igc: Reject NFC rules with multiple matches

The way Rx queue assignment based on mac address, Ethertype and VLAN
priority filtering operates in I225 doesn't allow us to properly support
NFC rules with multiple matches.

Consider the following example which assigns to queue 2 frames matching
the address MACADDR *and* Ethertype ETYPE.

$ ethtool -N eth0 flow-type ether dst <MACADDR> proto <ETYPE> queue 2

When such rule is applied, we have 2 unwanted behaviors:

    1) Any frame matching MACADDR will be assigned to queue 2. It
       doesn't matter the ETYPE value.

    2) Any accepted frame that has Ethertype equals to ETYPE, no matter
       the mac address, will be assigned to queue 2 as well.

In current code, multiple-match filters are accepted by the driver, even
though it doesn't support them properly. This patch adds a check for
multiple-match rules in igc_ethtool_is_nfc_rule_valid() so they are
rejected.

Signed-off-by: Andre Guedes <andre.guedes@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/igc/igc_ethtool.c