table: fix bucket empty check
authorThierry Herbelot <thierry.herbelot@6wind.com>
Wed, 7 Jul 2021 11:19:05 +0000 (13:19 +0200)
committerThomas Monjalon <thomas@monjalon.net>
Fri, 9 Jul 2021 20:42:24 +0000 (22:42 +0200)
Due to a typo, only 3 out of 4 keys in the bucket of the exact match
table were considered, which can result in valid keys being
incorrectly dropped from the table.

Fixes: d0a00966618ba ("table: add exact match SWX table")
Cc: stable@dpdk.org
Signed-off-by: Thierry Herbelot <thierry.herbelot@6wind.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
lib/table/rte_swx_table_em.c

index 788e25f..03b28c4 100644 (file)
@@ -280,7 +280,7 @@ table_key_data(struct table *t, uint32_t key_id)
 static inline int
 bkt_is_empty(struct bucket_extension *bkt)
 {
-       return (!bkt->sig[0] && !bkt->sig[1] && !bkt->sig[2] && !bkt->sig[2]) ?
+       return (!bkt->sig[0] && !bkt->sig[1] && !bkt->sig[2] && !bkt->sig[3]) ?
                1 : 0;
 }