net/sfc: support VLAN presence match in transfer rules
authorIvan Malov <ivan.malov@oktetlabs.ru>
Mon, 24 May 2021 11:48:33 +0000 (14:48 +0300)
committerDavid Marchand <david.marchand@redhat.com>
Wed, 7 Jul 2021 09:54:21 +0000 (11:54 +0200)
commitd96dccbc27ce3189f1192a72ff4d7fa2580beb6b
tree92276a36371b95d8c251f2879b1db8895b8dc939
parent3790789980afe978833f684cbde119d5daecc86d
net/sfc: support VLAN presence match in transfer rules

Take into account VLAN presence fields in items ETH and VLAN.

Provided that the item ETH does not match on the EtherType,
the pattern behaviour will be as follows:

- ETH (mask->has_vlan = 0) | IPv4        = match both tagged and untagged;
- ETH (mask->has_vlan = 1) | IPv4        = match as per spec->has_vlan;
- ETH (mask->has_vlan = 0) | VLAN | IPv4 = match only tagged.

Similar logic applies to double tagging.

Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>
Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Reviewed-by: Andy Moreton <amoreton@xilinx.com>
drivers/net/sfc/sfc_mae.c
drivers/net/sfc/sfc_mae.h