[PATCH net-next 0/4] net: mvpp2: cls: Allow steering based on vlan tag

From: Maxime Chevallier
Date: Tue Jun 18 2019 - 11:00:31 EST

The PPv2 classifier can perform flow steering based on keys extracted
from the VLAN tag. This series adds support for using the vlan id and
the vlan prio as keys, using the ethtool interface.

Patch 1 is a preparatory patch that prevent false-positive matches,
using a dedicated lookup id for the RSS C2 lookup.

Patch 2 allows to separate the flows based on the header fields they
contain. The main goal is to be able to separate tagged traffic from
untagged traffic for flow steering, just as we already do for RSS.

Patch 3 solves an issue we have when extracting fields that aren't full
bytes, such as the vlan tag which is 12 bits wide, or the priority which
is 3 bits wide.

Finally, patch 4 adds support for steering based on both vlan id and
priority, extracted from the outermost tag.

Maxime Chevallier (4):
net: mvpp2: cls: Use a dedicated lu_type for the RSS lookup
net: mvpp2: cls: Only select applicable flows of classification
net: mvpp2: cls: right-justify the C2 TCAM keys
net: mvpp2: cls: Add steering based on vlan Id and priority.

.../net/ethernet/marvell/mvpp2/mvpp2_cls.c | 118 +++++++++++++-----
.../net/ethernet/marvell/mvpp2/mvpp2_cls.h | 28 +++--
2 files changed, 103 insertions(+), 43 deletions(-)