[2/2] net/cnxk: support for mark pattern item type

Message ID 20220228045322.1841812-2-psatheesh@marvell.com (mailing list archive)
State Accepted, archived
Delegated to: Jerin Jacob
Headers
Series [1/2] common/cnxk: support for CPT second pass flow rules |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-broadcom-Performance success Performance Testing PASS
ci/github-robot: build success github build: passed
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/iol-aarch64-unit-testing success Testing PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS
ci/iol-abi-testing success Testing PASS

Commit Message

Satheesh Paul Antonysamy Feb. 28, 2022, 4:53 a.m. UTC
  From: Satheesh Paul <psatheesh@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 <psatheesh@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(-)
  

Patch

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,