hi: We test some lpm cases and find some bugs, below is how to fix it. thanks :) --- lib/librte_lpm/rte_lpm.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/lib/librte_lpm/rte_lpm.c b/lib/librte_lpm/rte_lpm.c index 163ba3c..b5199ff 100644 --- a/lib/librte_lpm/rte_lpm.c +++ b/lib/librte_lpm/rte_lpm.c @@ -735,7 +735,7 @@ delete_depth_small(struct rte_lpm *lpm, uint32_t ip_masked, lpm->tbl24[i].depth <= depth ) { lpm->tbl24[i].valid = INVALID; } - else { + else if (lpm->tbl24[i].ext_entry == 1){ /* * If TBL24 entry is extended, then there has * to be a rule with depth >= 25 in the @@ -770,6 +770,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, @@ -781,7 +782,7 @@ delete_depth_small(struct rte_lpm *lpm, uint32_t ip_masked, lpm->tbl24[i].depth <= depth ) { lpm->tbl24[i] = new_tbl24_entry; } - else { + else if (lpm->tbl24[i].ext_entry == 1) { /* * If TBL24 entry is extended, then there has * to be a rule with depth >= 25 in the -- 1.8.5.2 (Apple Git-48)