From: Satheesh Paul <psathe...@marvell.com> Added support for RTE_FLOW_ITEM_TYPE_MARK. This item type can be used to create ingress flow rules to match packets from CPT(second pass packets).
Signed-off-by: Satheesh Paul <psathe...@marvell.com> --- doc/guides/nics/cnxk.rst | 7 +++++++ 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 | 4 +++- 5 files changed, 13 insertions(+), 1 deletion(-) diff --git a/doc/guides/nics/cnxk.rst b/doc/guides/nics/cnxk.rst index 31c801fa04..34f6e4d8ee 100644 --- a/doc/guides/nics/cnxk.rst +++ b/doc/guides/nics/cnxk.rst @@ -406,6 +406,13 @@ Example usage in testpmd:: testpmd> flow create 0 ingress pattern eth / raw relative is 0 pattern \ spec ab pattern mask ab offset is 4 / end actions queue index 1 / end +RTE Flow mark item support +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- ``RTE_FLOW_ITEM_TYPE_MARK`` can be used to create ingress flow rules to match + packets from CPT(second pass packets). When mark item type is used, it should + be the first item in the patterns specification. + Inline device support for CN10K ------------------------------- diff --git a/doc/guides/nics/features/cnxk.ini b/doc/guides/nics/features/cnxk.ini index 0eba334eb4..7cac8beb61 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 +mark = Y mpls = Y nvgre = Y raw = Y diff --git a/doc/guides/nics/features/cnxk_vec.ini b/doc/guides/nics/features/cnxk_vec.ini index df5f358a3e..0803bb3c29 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 +mark = Y mpls = Y nvgre = Y raw = Y diff --git a/doc/guides/nics/features/cnxk_vf.ini b/doc/guides/nics/features/cnxk_vf.ini index a78fbcada0..ed3e231c5f 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 +mark = Y mpls = Y nvgre = Y raw = Y diff --git a/drivers/net/cnxk/cnxk_flow.c b/drivers/net/cnxk/cnxk_flow.c index 8763ca63d6..ff962c141d 100644 --- a/drivers/net/cnxk/cnxk_flow.c +++ b/drivers/net/cnxk/cnxk_flow.c @@ -53,7 +53,9 @@ const struct cnxk_rte_flow_term_info term[] = { [RTE_FLOW_ITEM_TYPE_HIGIG2] = {ROC_NPC_ITEM_TYPE_HIGIG2, sizeof(struct rte_flow_item_higig2_hdr)}, [RTE_FLOW_ITEM_TYPE_RAW] = {ROC_NPC_ITEM_TYPE_RAW, - sizeof(struct rte_flow_item_raw)}}; + sizeof(struct rte_flow_item_raw)}, + [RTE_FLOW_ITEM_TYPE_MARK] = {ROC_NPC_ITEM_TYPE_MARK, + sizeof(struct rte_flow_item_mark)}}; static int npc_rss_action_validate(struct rte_eth_dev *eth_dev, -- 2.25.4