• Kurt Kanzenbach's avatar
    igc: Check VLAN EtherType mask · 7afd49a3
    Kurt Kanzenbach authored
    Currently the driver accepts VLAN EtherType steering rules regardless of
    the configured mask. And things might fail silently or with confusing error
    messages to the user. The VLAN EtherType can only be matched by full
    mask. Therefore, add a check for that.
    
    For instance the following rule is invalid, but the driver accepts it and
    ignores the user specified mask:
    |root@host:~# ethtool -N enp3s0 flow-type ether vlan-etype 0x8100 \
    |             m 0x00ff action 0
    |Added rule with ID 63
    |root@host:~# ethtool --show-ntuple enp3s0
    |4 RX rings available
    |Total 1 rules
    |
    |Filter: 63
    |        Flow Type: Raw Ethernet
    |        Src MAC addr: 00:00:00:00:00:00 mask: FF:FF:FF:FF:FF:FF
    |        Dest MAC addr: 00:00:00:00:00:00 mask: FF:FF:FF:FF:FF:FF
    |        Ethertype: 0x0 mask: 0xFFFF
    |        VLAN EtherType: 0x8100 mask: 0x0
    |        VLAN: 0x0 mask: 0xffff
    |        User-defined: 0x0 mask: 0xffffffffffffffff
    |        Action: Direct to queue 0
    
    After:
    |root@host:~# ethtool -N enp3s0 flow-type ether vlan-etype 0x8100 \
    |             m 0x00ff action 0
    |rmgr: Cannot insert RX class rule: Operation not supported
    
    Fixes: 2b477d05 ("igc: Integrate flex filter into ethtool ops")
    Suggested-by: default avatarSuman Ghosh <sumang@marvell.com>
    Signed-off-by: Kurt Kanzenbach's avatarKurt Kanzenbach <kurt@linutronix.de>
    Acked-by: default avatarVinicius Costa Gomes <vinicius.gomes@intel.com>
    Reviewed-by: default avatarSimon Horman <horms@kernel.org>
    Tested-by: default avatarNaama Meir <naamax.meir@linux.intel.com>
    Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
    7afd49a3
igc_ethtool.c 56.2 KB