[dpdk-dev] [PATCH] table: fix table_array for incomplete bitmask

Dumitrescu, Cristian cristian.dumitrescu at intel.com
Thu Dec 4 16:23:43 CET 2014


Acked by: <Cristian.Dumitrescu at intel.com>

-----Original Message-----
From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Bruce Richardson
Sent: Thursday, December 4, 2014 2:24 PM
To: dev at dpdk.org
Subject: [dpdk-dev] [PATCH] table: fix table_array for incomplete bitmask

When a lookup was done on a table_array structure with an incomplete
bitmask, the results was always zero hits. This was because the
pkts_mask value was cleared as we process each entry, and the result
was assigned at the end of the loop, when pkts_mask was zero.
Changing the assignment to occur at the start, before the pkts_mask
gets cleared, fixes this issue.

Signed-off-by: Bruce Richardson <bruce.richardson at intel.com>
---
 lib/librte_table/rte_table_array.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/librte_table/rte_table_array.c b/lib/librte_table/rte_table_array.c
index 0b1d42a..4d3c05e 100644
--- a/lib/librte_table/rte_table_array.c
+++ b/lib/librte_table/rte_table_array.c
@@ -164,6 +164,8 @@ rte_table_array_lookup(
 {
 	struct rte_table_array *t = (struct rte_table_array *) table;
 
+	*lookup_hit_mask = pkts_mask;
+
 	if ((pkts_mask & (pkts_mask + 1)) == 0) {
 		uint64_t n_pkts = __builtin_popcountll(pkts_mask);
 		uint32_t i;
@@ -190,8 +192,6 @@ rte_table_array_lookup(
 		}
 	}
 
-	*lookup_hit_mask = pkts_mask;
-
 	return 0;
 }
 
-- 
1.9.3

--------------------------------------------------------------
Intel Shannon Limited
Registered in Ireland
Registered Office: Collinstown Industrial Park, Leixlip, County Kildare
Registered Number: 308263
Business address: Dromore House, East Park, Shannon, Co. Clare

This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies.




More information about the dev mailing list