]> git.droids-corp.org - dpdk.git/commitdiff
net/cnxk: support IPv6 fragment flow pattern item
authorSatheesh Paul <psatheesh@marvell.com>
Wed, 27 Apr 2022 06:23:19 +0000 (11:53 +0530)
committerJerin Jacob <jerinj@marvell.com>
Mon, 9 May 2022 12:36:43 +0000 (14:36 +0200)
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>
doc/guides/nics/features/cnxk.ini
doc/guides/nics/features/cnxk_vec.ini
doc/guides/nics/features/cnxk_vf.ini
drivers/common/cnxk/roc_npc.h
drivers/common/cnxk/roc_npc_parse.c
drivers/net/cnxk/cnxk_flow.c

index 7cac8beb611d2819a215c14bfef2b10c7f4e4f94..1876fe86c7071ea8d45dab1c46f6b6510c464890 100644 (file)
@@ -65,6 +65,7 @@ icmp                 = Y
 ipv4                 = Y
 ipv6                 = Y
 ipv6_ext             = Y
+ipv6_frag_ext        = Y
 mark                 = Y
 mpls                 = Y
 nvgre                = Y
index 0803bb3c292fc4cd3009e412c859c995c0d1ae19..5d0976e6ceadc29cd17bdd3b6193d9a9c3a06b41 100644 (file)
@@ -61,6 +61,7 @@ icmp                 = Y
 ipv4                 = Y
 ipv6                 = Y
 ipv6_ext             = Y
+ipv6_frag_ext        = Y
 mark                 = Y
 mpls                 = Y
 nvgre                = Y
index ed3e231c5fe2b8f38d134fcd2a553bf6a7214c58..c4ee32a9adeb4873a18d469b6d01747491011476 100644 (file)
@@ -57,6 +57,7 @@ icmp                 = Y
 ipv4                 = Y
 ipv6                 = Y
 ipv6_ext             = Y
+ipv6_frag_ext        = Y
 mark                 = Y
 mpls                 = Y
 nvgre                = Y
index ac985e7b318125581467101fec16851fbfe192ae..f92c2a633ca6ad9d1acbf704d39f0e67b9b595a1 100644 (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,
index 1ce0dadfef536af31a7300ee6fc810dcdb30b136..0748646779f99bea35236f7a33079a1cb40cb5f8 100644 (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;
index 645e359a578c6403b93387142bf7e9eec912c3e5..06301b9ecb073b305699c86b9dd7f3f224ba0ebe 100644 (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)},