[dpdk-dev,v3,2/2] lib/lpm:fix incorrect reuse of already allocated tbl8

Message ID 1446517061-19261-3-git-send-email-nana.nn@alibaba-inc.com (mailing list archive)
State Accepted, archived
Headers

Commit Message

=?UTF-8?B?6YKj5aicKOaBkuaciCk=?= Nov. 3, 2015, 2:17 a.m. UTC
  Fixes an initialization issue of 'valid_group' in the delete_depth_small().

When adding an entry to a tbl8, the .valid_group field should always be set,
so that future adds do not accidently find and use this table, thinking it is
currently invalid, i.e. unused, and thereby overwrite existing entries.

Signed-off-by: Na Na <nana.nn@alibaba-inc.com>

---
 lib/librte_lpm/rte_lpm.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
  

Patch

diff --git a/lib/librte_lpm/rte_lpm.c b/lib/librte_lpm/rte_lpm.c
index 57ec2f0..3981452 100644
--- a/lib/librte_lpm/rte_lpm.c
+++ b/lib/librte_lpm/rte_lpm.c
@@ -769,6 +769,7 @@  delete_depth_small(struct rte_lpm *lpm, uint32_t ip_masked,
 
 		struct rte_lpm_tbl8_entry new_tbl8_entry = {
 			.valid = VALID,
+			.valid_group = VALID,
 			.depth = sub_rule_depth,
 			.next_hop = lpm->rules_tbl
 			[sub_rule_index].next_hop,