linux/drivers/net/ethernet/intel/igc
Andre Guedes 3d3e9b6b6a 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>
2020-05-28 20:13:11 -07:00
..
igc_base.c igc: Use netdev log helpers in igc_base.c 2020-05-18 17:16:33 -07:00
igc_base.h igc: Add tx_csum offload functionality 2019-09-09 11:37:14 -07:00
igc_defines.h igc: Remove unused flags 2020-05-28 20:05:20 -07:00
igc_diag.c igc: add support to eeprom, registers and link self-tests 2020-05-18 15:06:28 -07:00
igc_diag.h igc: add support to eeprom, registers and link self-tests 2020-05-18 15:06:28 -07:00
igc_dump.c igc: Remove unused registers 2020-05-19 16:00:00 -07:00
igc_ethtool.c igc: Reject NFC rules with multiple matches 2020-05-28 20:13:11 -07:00
igc_hw.h igc: Add new device IDs for i225 part 2020-04-19 11:34:11 -07:00
igc_i225.c igc: Add NVM support 2018-10-17 13:52:00 -07:00
igc_i225.h igc: Add NVM support 2018-10-17 13:52:00 -07:00
igc_mac.c igc: Remove obsolete circuit breaker registers 2020-05-21 16:18:48 -07:00
igc_mac.h igc: remove IGC_REMOVED function 2020-05-19 15:01:48 -07:00
igc_main.c igc: Remove igc_nfc_rule_exit() 2020-05-22 18:21:52 -07:00
igc_nvm.c igc: Add NVM support 2018-10-17 13:52:00 -07:00
igc_nvm.h igc: Add NVM support 2018-10-17 13:52:00 -07:00
igc_phy.c igc: Add PHY power management control 2020-01-17 09:55:34 -08:00
igc_phy.h igc: Add setup link functionality 2018-10-17 13:56:55 -07:00
igc_ptp.c igc: Remove ethertype filter in PTP code 2020-05-19 15:35:42 -07:00
igc_regs.h igc: Remove per queue good transmited counter register 2020-05-21 16:18:56 -07:00
igc_tsn.c igc: Add support for ETF offloading 2020-04-17 10:19:24 -07:00
igc_tsn.h igc: Add support for taprio offloading 2020-04-17 10:19:24 -07:00
igc.h igc: Change adapter->nfc_rule_lock to mutex 2020-05-22 18:21:52 -07:00
Makefile igc: add support to eeprom, registers and link self-tests 2020-05-18 15:06:28 -07:00