patch 'examples/flow_filtering: fix IPv4 matching snippet' has been queued to stable release 24.11.2

Kevin Traynor ktraynor at redhat.com
Mon Mar 24 17:16:35 CET 2025


Hi,

FYI, your patch has been queued to stable release 24.11.2

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 03/28/25. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable/commit/b540e51a864d25b1e254fa8c311b92223e0f4162

Thanks.

Kevin

---
>From b540e51a864d25b1e254fa8c311b92223e0f4162 Mon Sep 17 00:00:00 2001
From: Shani Peretz <shperetz at nvidia.com>
Date: Sun, 12 Jan 2025 09:52:00 +0200
Subject: [PATCH] examples/flow_filtering: fix IPv4 matching snippet

[ upstream commit 5fa25916f1ab47c82310264449a6d67dbb15ca4d ]

This patch corrects the destination IP address mask to
restore the previous implementation's behavior.

Also it fixes a misuse of rte_flow_item_tcp struct.
Replace it with the appropriate rte_flow_item_ipv4 struct,
as the code in this context filters ipv4 traffic.

Fixes: 16158f349000 ("examples/flow_filtering: introduce use cases snippets")

Signed-off-by: Shani Peretz <shperetz at nvidia.com>
---
 examples/flow_filtering/snippets/snippet_match_ipv4.c | 11 ++++++-----
 examples/flow_filtering/snippets/snippet_match_ipv4.h |  1 -
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/examples/flow_filtering/snippets/snippet_match_ipv4.c b/examples/flow_filtering/snippets/snippet_match_ipv4.c
index 65fb045e8b..d32f4ebfdc 100644
--- a/examples/flow_filtering/snippets/snippet_match_ipv4.c
+++ b/examples/flow_filtering/snippets/snippet_match_ipv4.c
@@ -56,5 +56,5 @@ snippet_ipv4_flow_create_patterns(struct rte_flow_item *patterns)
 
 	ip_spec->hdr.dst_addr = htonl(DEST_IP); /* The dest ip value to match the input packet. */
-	ip_mask->hdr.dst_addr = DEST_MASK; /* The mask to apply to the dest ip. */
+	ip_mask->hdr.dst_addr = FULL_MASK; /* The mask to apply to the dest ip. */
 	ip_spec->hdr.src_addr = htonl(SRC_IP); /* The src ip value to match the input packet. */
 	ip_mask->hdr.src_addr = EMPTY_MASK; /* The mask to apply to the src ip. */
@@ -77,5 +77,6 @@ snippet_ipv4_flow_create_actions_template(uint16_t port_id, struct rte_flow_erro
 	};
 
-	tactions[0].type = RTE_FLOW_ACTION_TYPE_END;
+	tactions[0].type = RTE_FLOW_ACTION_TYPE_QUEUE;
+	tactions[1].type = RTE_FLOW_ACTION_TYPE_END;
 
 	/* This sets the masks to match the actions, indicating that all fields of the actions
@@ -93,5 +94,5 @@ snippet_ipv4_flow_create_pattern_template(uint16_t port_id, struct rte_flow_erro
 {
 	struct rte_flow_item titems[MAX_PATTERN_NUM] = {0};
-	struct rte_flow_item_tcp ip_mask = {0};
+	struct rte_flow_item_ipv4 ip_mask = {0};
 
 	struct rte_flow_pattern_template_attr attr = {
@@ -102,6 +103,6 @@ snippet_ipv4_flow_create_pattern_template(uint16_t port_id, struct rte_flow_erro
 	titems[0].type = RTE_FLOW_ITEM_TYPE_ETH;
 	titems[1].type = RTE_FLOW_ITEM_TYPE_IPV4;
-	ip_mask.hdr.src_port = EMPTY_MASK;
-	ip_mask.hdr.dst_port = DEST_MASK;
+	ip_mask.hdr.src_addr = EMPTY_MASK;
+	ip_mask.hdr.dst_addr = FULL_MASK;
 	titems[1].mask = &ip_mask;
 	titems[2].type = RTE_FLOW_ITEM_TYPE_END;
diff --git a/examples/flow_filtering/snippets/snippet_match_ipv4.h b/examples/flow_filtering/snippets/snippet_match_ipv4.h
index 847784beef..597a1c954e 100644
--- a/examples/flow_filtering/snippets/snippet_match_ipv4.h
+++ b/examples/flow_filtering/snippets/snippet_match_ipv4.h
@@ -14,5 +14,4 @@
 #define FULL_MASK 0xffffffff /* full mask */
 #define EMPTY_MASK 0x0 /* empty mask */
-#define DEST_MASK 0xffff /* full mask */
 
 #define MAX_PATTERN_NUM		3 /* Maximal number of patterns for this example. */
-- 
2.48.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-24 16:15:15.825469086 +0000
+++ 0028-examples-flow_filtering-fix-IPv4-matching-snippet.patch	2025-03-24 16:15:14.859131256 +0000
@@ -1 +1 @@
-From 5fa25916f1ab47c82310264449a6d67dbb15ca4d Mon Sep 17 00:00:00 2001
+From b540e51a864d25b1e254fa8c311b92223e0f4162 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 5fa25916f1ab47c82310264449a6d67dbb15ca4d ]
+
@@ -14 +15,0 @@
-Cc: stable at dpdk.org



More information about the stable mailing list