[dpdk-dev] lpm: fix index of tbl8

Message ID 1497845678-7643-1-git-send-email-wei.dai@intel.com (mailing list archive)
State Accepted, archived
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Wei Dai June 19, 2017, 4:14 a.m. UTC
  From v20 to v1604, number of tlb8 can be up to 1<<24,
(uint8_t) or (uint16_t) may truncate the number of
index of tlb8 in v1604 and cause wrong number.

Fixes: dc81ebbacaeb ("lpm: extend IPv4 next hop field")
Cc: stable@dpdk.org

Signed-off-by: Wei Dai <wei.dai@intel.com>
---
 lib/librte_lpm/rte_lpm.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
  

Comments

Bruce Richardson June 19, 2017, 11:25 a.m. UTC | #1
On Mon, Jun 19, 2017 at 12:14:38PM +0800, Wei Dai wrote:
> From v20 to v1604, number of tlb8 can be up to 1<<24,
> (uint8_t) or (uint16_t) may truncate the number of
> index of tlb8 in v1604 and cause wrong number.
> 
> Fixes: dc81ebbacaeb ("lpm: extend IPv4 next hop field")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Wei Dai <wei.dai@intel.com>

Acked-by: Bruce Richardson <bruce.richardson@intel.com>
  
Thomas Monjalon June 19, 2017, 9:26 p.m. UTC | #2
19/06/2017 13:25, Bruce Richardson:
> On Mon, Jun 19, 2017 at 12:14:38PM +0800, Wei Dai wrote:
> > From v20 to v1604, number of tlb8 can be up to 1<<24,
> > (uint8_t) or (uint16_t) may truncate the number of
> > index of tlb8 in v1604 and cause wrong number.
> > 
> > Fixes: dc81ebbacaeb ("lpm: extend IPv4 next hop field")
> > Cc: stable@dpdk.org
> > 
> > Signed-off-by: Wei Dai <wei.dai@intel.com>
> 
> Acked-by: Bruce Richardson <bruce.richardson@intel.com>

Applied, thanks
  

Patch

diff --git a/lib/librte_lpm/rte_lpm.c b/lib/librte_lpm/rte_lpm.c
index 8c15c4c..978ac60 100644
--- a/lib/librte_lpm/rte_lpm.c
+++ b/lib/librte_lpm/rte_lpm.c
@@ -1034,7 +1034,7 @@  add_depth_big_v1604(struct rte_lpm *lpm, uint32_t ip_masked, uint8_t depth,
 		 */
 
 		struct rte_lpm_tbl_entry new_tbl24_entry = {
-			.group_idx = (uint8_t)tbl8_group_index,
+			.group_idx = tbl8_group_index,
 			.valid = VALID,
 			.valid_group = 1,
 			.depth = 0,
@@ -1080,7 +1080,7 @@  add_depth_big_v1604(struct rte_lpm *lpm, uint32_t ip_masked, uint8_t depth,
 		 */
 
 		struct rte_lpm_tbl_entry new_tbl24_entry = {
-				.group_idx = (uint8_t)tbl8_group_index,
+				.group_idx = tbl8_group_index,
 				.valid = VALID,
 				.valid_group = 1,
 				.depth = 0,