• Andre Guedes's avatar
    igc: Reject NFC rules with multiple matches · 3d3e9b6b
    Andre Guedes authored
    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: default avatarAndre Guedes <andre.guedes@intel.com>
    Tested-by: default avatarAaron Brown <aaron.f.brown@intel.com>
    Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    3d3e9b6b
igc_ethtool.c 49.8 KB