From 13c9ab80cf6871eea48f0bbf40d4d8a2fcc6999b Mon Sep 17 00:00:00 2001 From: Donatas Abraitis Date: Tue, 10 Dec 2024 16:28:26 +0200 Subject: [PATCH] lib: Take ge/le into consideration when checking the prefix with the prefix-list Without the fix: ``` show ip prefix-list test_1 10.20.30.96/27 first-match show ip prefix-list test_2 192.168.1.2/32 first-match ``` With the fix: ``` ip prefix-list test_1 seq 10 permit 10.20.30.64/26 le 27 ! end donatas# show ip prefix-list test_1 10.20.30.96/27 seq 10 permit 10.20.30.64/26 le 27 (hit count: 1, refcount: 0) donatas# show ip prefix-list test_1 10.20.30.64/27 seq 10 permit 10.20.30.64/26 le 27 (hit count: 2, refcount: 0) donatas# show ip prefix-list test_1 10.20.30.64/28 donatas# show ip prefix-list test_1 10.20.30.126/26 seq 10 permit 10.20.30.64/26 le 27 (hit count: 3, refcount: 0) donatas# show ip prefix-list test_1 10.20.30.126/30 donatas# ``` Signed-off-by: Donatas Abraitis (cherry picked from commit dd4c2acc2e871283256f6cea16ede6d2d7f72dfe) --- lib/plist.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/plist.c b/lib/plist.c index 2f5827cf4354..5f52e27d18ec 100644 --- a/lib/plist.c +++ b/lib/plist.c @@ -1140,8 +1140,10 @@ static int vty_show_prefix_list_prefix(struct vty *vty, afi_t afi, match = 0; if (type == normal_display || type == first_match_display) - if (prefix_same(&p, &pentry->prefix)) + if (prefix_list_entry_match(pentry, &p, false)) { + pentry->hitcnt++; match = 1; + } if (type == longer_display) { if ((p.family == pentry->prefix.family)