octeontx2-af: add support for custom L2 header

Add packet parsing support for custom L2 headers. Also add support
to include a field from the custom header for flow tag generation.

Introduce a new flow key type NIX_FLOW_KEY_TYPE_CH_LEN_90B which
maps to the NPC_LT_LA_CUSTOM_L2_90B_ETHER layer type. This extracts
a 2-byte field at a 24-byte offset in layer A to be used in flow
tag generation.

Signed-off-by: Satheesh Paul A <psatheesh@marvell.com>
Signed-off-by: Nitin Shetty J <nshettyj@marvell.com>
Link: https://patch.msgid.link/20260715072035.617544-1-nshettyj@marvell.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Satheesh Paul A
2026-07-15 12:50:34 +05:30
committed by Jakub Kicinski
parent bf8cdde4ef
commit e283410075
2 changed files with 8 additions and 0 deletions

View File

@@ -1263,6 +1263,7 @@ struct nix_rss_flowkey_cfg {
#define NIX_FLOW_KEY_TYPE_INNR_UDP BIT(15)
#define NIX_FLOW_KEY_TYPE_INNR_SCTP BIT(16)
#define NIX_FLOW_KEY_TYPE_INNR_ETH_DMAC BIT(17)
#define NIX_FLOW_KEY_TYPE_CH_LEN_90B BIT(18)
#define NIX_FLOW_KEY_TYPE_CUSTOM0 BIT(19)
#define NIX_FLOW_KEY_TYPE_VLAN BIT(20)
#define NIX_FLOW_KEY_TYPE_IPV4_PROTO BIT(21)

View File

@@ -4288,6 +4288,13 @@ static int set_flowkey_fields(struct nix_rx_flowkey_alg *alg, u32 flow_cfg)
field->ltype_match = NPC_LT_LC_CUSTOM0;
field->ltype_mask = 0xF;
break;
case NIX_FLOW_KEY_TYPE_CH_LEN_90B:
field->lid = NPC_LID_LA;
field->hdr_offset = 24;
field->bytesm1 = 1; /* 2 Bytes*/
field->ltype_match = NPC_LT_LA_CUSTOM_L2_90B_ETHER;
field->ltype_mask = 0xF;
break;
case NIX_FLOW_KEY_TYPE_VLAN:
field->lid = NPC_LID_LB;
field->hdr_offset = 2; /* Skip TPID (2-bytes) */