From: Satheesh Paul <psatheesh@marvell.com> ROC changes to support RTE_FLOW_ITEM_TYPE_IPV6_FRAG_EXT flow pattern item. Signed-off-by: Satheesh Paul <psatheesh@marvell.com> --- drivers/common/cnxk/roc_npc.h | 1 + drivers/common/cnxk/roc_npc_parse.c | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/drivers/common/cnxk/roc_npc.h b/drivers/common/cnxk/roc_npc.h index 723eadc649..3ba8a181df 100644 --- a/drivers/common/cnxk/roc_npc.h +++ b/drivers/common/cnxk/roc_npc.h @@ -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, diff --git a/drivers/common/cnxk/roc_npc_parse.c b/drivers/common/cnxk/roc_npc_parse.c index 1ce0dadfef..0748646779 100644 --- a/drivers/common/cnxk/roc_npc_parse.c +++ b/drivers/common/cnxk/roc_npc_parse.c @@ -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; -- 2.25.4
From: Satheesh Paul <psatheesh@marvell.com> 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> --- doc/guides/nics/features/cnxk.ini | 1 + doc/guides/nics/features/cnxk_vec.ini | 1 + doc/guides/nics/features/cnxk_vf.ini | 1 + drivers/net/cnxk/cnxk_flow.c | 3 +++ 4 files changed, 6 insertions(+) diff --git a/doc/guides/nics/features/cnxk.ini b/doc/guides/nics/features/cnxk.ini index 7cac8beb61..1876fe86c7 100644 --- a/doc/guides/nics/features/cnxk.ini +++ b/doc/guides/nics/features/cnxk.ini @@ -65,6 +65,7 @@ icmp = Y ipv4 = Y ipv6 = Y ipv6_ext = Y +ipv6_frag_ext = Y mark = Y mpls = Y nvgre = Y diff --git a/doc/guides/nics/features/cnxk_vec.ini b/doc/guides/nics/features/cnxk_vec.ini index 0803bb3c29..5d0976e6ce 100644 --- a/doc/guides/nics/features/cnxk_vec.ini +++ b/doc/guides/nics/features/cnxk_vec.ini @@ -61,6 +61,7 @@ icmp = Y ipv4 = Y ipv6 = Y ipv6_ext = Y +ipv6_frag_ext = Y mark = Y mpls = Y nvgre = Y diff --git a/doc/guides/nics/features/cnxk_vf.ini b/doc/guides/nics/features/cnxk_vf.ini index ed3e231c5f..c4ee32a9ad 100644 --- a/doc/guides/nics/features/cnxk_vf.ini +++ b/doc/guides/nics/features/cnxk_vf.ini @@ -57,6 +57,7 @@ icmp = Y ipv4 = Y ipv6 = Y ipv6_ext = Y +ipv6_frag_ext = Y mark = Y mpls = Y nvgre = Y diff --git a/drivers/net/cnxk/cnxk_flow.c b/drivers/net/cnxk/cnxk_flow.c index ff962c141d..34f5d54f28 100644 --- a/drivers/net/cnxk/cnxk_flow.c +++ b/drivers/net/cnxk/cnxk_flow.c @@ -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)}, -- 2.25.4
On Wed, Apr 27, 2022 at 11:53 AM <psatheesh@marvell.com> wrote: > > From: Satheesh Paul <psatheesh@marvell.com> > > 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> Series applied to dpdk-next-net-mrvl/for-next-net. Thanks > --- > doc/guides/nics/features/cnxk.ini | 1 + > doc/guides/nics/features/cnxk_vec.ini | 1 + > doc/guides/nics/features/cnxk_vf.ini | 1 + > drivers/net/cnxk/cnxk_flow.c | 3 +++ > 4 files changed, 6 insertions(+) > > diff --git a/doc/guides/nics/features/cnxk.ini b/doc/guides/nics/features/cnxk.ini > index 7cac8beb61..1876fe86c7 100644 > --- a/doc/guides/nics/features/cnxk.ini > +++ b/doc/guides/nics/features/cnxk.ini > @@ -65,6 +65,7 @@ icmp = Y > ipv4 = Y > ipv6 = Y > ipv6_ext = Y > +ipv6_frag_ext = Y > mark = Y > mpls = Y > nvgre = Y > diff --git a/doc/guides/nics/features/cnxk_vec.ini b/doc/guides/nics/features/cnxk_vec.ini > index 0803bb3c29..5d0976e6ce 100644 > --- a/doc/guides/nics/features/cnxk_vec.ini > +++ b/doc/guides/nics/features/cnxk_vec.ini > @@ -61,6 +61,7 @@ icmp = Y > ipv4 = Y > ipv6 = Y > ipv6_ext = Y > +ipv6_frag_ext = Y > mark = Y > mpls = Y > nvgre = Y > diff --git a/doc/guides/nics/features/cnxk_vf.ini b/doc/guides/nics/features/cnxk_vf.ini > index ed3e231c5f..c4ee32a9ad 100644 > --- a/doc/guides/nics/features/cnxk_vf.ini > +++ b/doc/guides/nics/features/cnxk_vf.ini > @@ -57,6 +57,7 @@ icmp = Y > ipv4 = Y > ipv6 = Y > ipv6_ext = Y > +ipv6_frag_ext = Y > mark = Y > mpls = Y > nvgre = Y > diff --git a/drivers/net/cnxk/cnxk_flow.c b/drivers/net/cnxk/cnxk_flow.c > index ff962c141d..34f5d54f28 100644 > --- a/drivers/net/cnxk/cnxk_flow.c > +++ b/drivers/net/cnxk/cnxk_flow.c > @@ -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)}, > -- > 2.25.4 >