* Re: [PATCH] rib: fix traversal with /32 route [not found] <20220414200104.245071-1-stephen@networkplumber.org> @ 2022-04-26 14:28 ` Medvedkin, Vladimir 2022-04-26 14:30 ` Medvedkin, Vladimir 0 siblings, 1 reply; 3+ messages in thread From: Medvedkin, Vladimir @ 2022-04-26 14:28 UTC (permalink / raw) To: Stephen Hemminger, dev, dpdk stable +Cc:stable@dpdk.org On 14/04/2022 21:01, Stephen Hemminger wrote: > If a /32 route is entered in the RIB the code to traverse > will not see that a a 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. > > Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> > --- > 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 cd9e823068d2..0603980cabd2 100644 > --- a/lib/rib/rte_rib.c > +++ b/lib/rib/rte_rib.c > @@ -71,6 +71,8 @@ is_covered(uint32_t ip1, uint32_t ip2, uint8_t depth) > 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; > } > Acked-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com> -- Regards, Vladimir ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] rib: fix traversal with /32 route 2022-04-26 14:28 ` [PATCH] rib: fix traversal with /32 route Medvedkin, Vladimir @ 2022-04-26 14:30 ` Medvedkin, Vladimir 2022-06-01 7:04 ` Thomas Monjalon 0 siblings, 1 reply; 3+ messages in thread From: Medvedkin, Vladimir @ 2022-04-26 14:30 UTC (permalink / raw) To: Stephen Hemminger, dev, dpdk stable Fixes: 5a5793a5ffa2 ("rib: add RIB library") On 26/04/2022 15:28, Medvedkin, Vladimir wrote: > +Cc:stable@dpdk.org > > On 14/04/2022 21:01, Stephen Hemminger wrote: >> If a /32 route is entered in the RIB the code to traverse >> will not see that a a 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. >> >> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> >> --- >> 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 cd9e823068d2..0603980cabd2 100644 >> --- a/lib/rib/rte_rib.c >> +++ b/lib/rib/rte_rib.c >> @@ -71,6 +71,8 @@ is_covered(uint32_t ip1, uint32_t ip2, uint8_t depth) >> 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; >> } > > Acked-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com> > -- Regards, Vladimir ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] rib: fix traversal with /32 route 2022-04-26 14:30 ` Medvedkin, Vladimir @ 2022-06-01 7:04 ` Thomas Monjalon 0 siblings, 0 replies; 3+ messages in thread From: Thomas Monjalon @ 2022-06-01 7:04 UTC (permalink / raw) To: Stephen Hemminger; +Cc: dev, dpdk stable, Medvedkin, Vladimir 26/04/2022 16:30, Medvedkin, Vladimir: > Fixes: 5a5793a5ffa2 ("rib: add RIB library") > > On 26/04/2022 15:28, Medvedkin, Vladimir wrote: > > +Cc:stable@dpdk.org > > > > On 14/04/2022 21:01, Stephen Hemminger wrote: > >> If a /32 route is entered in the RIB the code to traverse > >> will not see that a a 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. > >> > >> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> > >> --- > >> 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 cd9e823068d2..0603980cabd2 100644 > >> --- a/lib/rib/rte_rib.c > >> +++ b/lib/rib/rte_rib.c > >> @@ -71,6 +71,8 @@ is_covered(uint32_t ip1, uint32_t ip2, uint8_t depth) > >> 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; > >> } > > > > Acked-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com> Applied, thanks. ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2022-06-01 7:04 UTC | newest] Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <20220414200104.245071-1-stephen@networkplumber.org> 2022-04-26 14:28 ` [PATCH] rib: fix traversal with /32 route Medvedkin, Vladimir 2022-04-26 14:30 ` Medvedkin, Vladimir 2022-06-01 7:04 ` Thomas Monjalon
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).