net/cnxk: support IPv6 fragment flow pattern item

Support matching IPv6 fragment extension header
with RTE_FLOW_ITEM_TYPE_IPV6_FRAG_EXT flow pattern item.

Signed-off-by: Satheesh Paul <psatheesh@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
This commit is contained in:
Satheesh Paul 2022-04-27 11:53:19 +05:30 committed by Jerin Jacob
parent b934e65b01
commit a800675b06
6 changed files with 14 additions and 0 deletions

View File

@ -65,6 +65,7 @@ icmp = Y
ipv4 = Y
ipv6 = Y
ipv6_ext = Y
ipv6_frag_ext = Y
mark = Y
mpls = Y
nvgre = Y

View File

@ -61,6 +61,7 @@ icmp = Y
ipv4 = Y
ipv6 = Y
ipv6_ext = Y
ipv6_frag_ext = Y
mark = Y
mpls = Y
nvgre = Y

View File

@ -57,6 +57,7 @@ icmp = Y
ipv4 = Y
ipv6 = Y
ipv6_ext = Y
ipv6_frag_ext = Y
mark = Y
mpls = Y
nvgre = Y

View File

@ -15,6 +15,7 @@ enum roc_npc_item_type {
ROC_NPC_ITEM_TYPE_E_TAG,
ROC_NPC_ITEM_TYPE_IPV4,
ROC_NPC_ITEM_TYPE_IPV6,
ROC_NPC_ITEM_TYPE_IPV6_FRAG_EXT,
ROC_NPC_ITEM_TYPE_ARP_ETH_IPV4,
ROC_NPC_ITEM_TYPE_MPLS,
ROC_NPC_ITEM_TYPE_ICMP,

View File

@ -594,6 +594,13 @@ npc_parse_lc(struct npc_parse_state *pst)
info.len = pst->pattern->size;
info.hw_hdr_len = 40;
break;
case ROC_NPC_ITEM_TYPE_IPV6_FRAG_EXT:
lid = NPC_LID_LC;
lt = NPC_LT_LC_IP6_EXT;
flags = NPC_F_LC_U_IP6_FRAG;
info.len = pst->pattern->size;
info.hw_hdr_len = 40;
break;
case ROC_NPC_ITEM_TYPE_L3_CUSTOM:
lt = NPC_LT_LC_CUSTOM0;
info.len = pst->pattern->size;

View File

@ -14,6 +14,9 @@ const struct cnxk_rte_flow_term_info term[] = {
sizeof(struct rte_flow_item_ipv4)},
[RTE_FLOW_ITEM_TYPE_IPV6] = {ROC_NPC_ITEM_TYPE_IPV6,
sizeof(struct rte_flow_item_ipv6)},
[RTE_FLOW_ITEM_TYPE_IPV6_FRAG_EXT] = {
ROC_NPC_ITEM_TYPE_IPV6_FRAG_EXT,
sizeof(struct rte_flow_item_ipv6_frag_ext)},
[RTE_FLOW_ITEM_TYPE_ARP_ETH_IPV4] = {
ROC_NPC_ITEM_TYPE_ARP_ETH_IPV4,
sizeof(struct rte_flow_item_arp_eth_ipv4)},