patch 'rib: fix traversal with /32 route' has been queued to stable release 21.11.2

Kevin Traynor ktraynor at redhat.com
Thu Jun 9 13:35:53 CEST 2022


Hi,

FYI, your patch has been queued to stable release 21.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 06/13/22. 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/6bbdd05838e297f3980d6d221848057f696b99a7

Thanks.

Kevin

---
>From 6bbdd05838e297f3980d6d221848057f696b99a7 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen at networkplumber.org>
Date: Thu, 14 Apr 2022 13:01:04 -0700
Subject: [PATCH] rib: fix traversal with /32 route

[ upstream commit 1b984e98a3fd00e607ec14b8b9299a2f14698dc3 ]

If a /32 route is entered in the RIB the code to traverse
will not see end of the tree. This is due to trying
to do a negative shift which is an undefined in C.

Fix by checking for max depth as is already done in rib6.

Fixes: 5a5793a5ffa2 ("rib: add RIB library")

Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
Acked-by: Vladimir Medvedkin <vladimir.medvedkin at intel.com>
---
 lib/rib/rte_rib.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/lib/rib/rte_rib.c b/lib/rib/rte_rib.c
index 6c29e1c49a..1a4b10d728 100644
--- a/lib/rib/rte_rib.c
+++ b/lib/rib/rte_rib.c
@@ -74,4 +74,6 @@ static inline struct rte_rib_node *
 get_nxt_node(struct rte_rib_node *node, uint32_t ip)
 {
+	if (node->depth == RIB_MAXDEPTH)
+		return NULL;
 	return (ip & (1 << (31 - node->depth))) ? node->right : node->left;
 }
-- 
2.34.3

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-06-09 12:34:29.933581768 +0100
+++ 0006-rib-fix-traversal-with-32-route.patch	2022-06-09 12:34:29.611980412 +0100
@@ -1 +1 @@
-From 1b984e98a3fd00e607ec14b8b9299a2f14698dc3 Mon Sep 17 00:00:00 2001
+From 6bbdd05838e297f3980d6d221848057f696b99a7 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 1b984e98a3fd00e607ec14b8b9299a2f14698dc3 ]
+
@@ -13 +14,0 @@
-Cc: stable at dpdk.org
@@ -22 +23 @@
-index cd9e823068..0603980cab 100644
+index 6c29e1c49a..1a4b10d728 100644
@@ -25 +26 @@
-@@ -72,4 +72,6 @@ static inline struct rte_rib_node *
+@@ -74,4 +74,6 @@ static inline struct rte_rib_node *



More information about the stable mailing list