]> git.puffer.fish Git - matthieu/frr.git/commitdiff
lib: Take ge/le into consideration when checking the prefix with the prefix-list
authorDonatas Abraitis <donatas@opensourcerouting.org>
Tue, 10 Dec 2024 14:28:26 +0000 (16:28 +0200)
committerDonatas Abraitis <donatas@opensourcerouting.org>
Tue, 10 Dec 2024 14:28:26 +0000 (16:28 +0200)
Without the fix:

```
show ip prefix-list test_1 10.20.30.96/27 first-match
 <no result>

show ip prefix-list test_2 192.168.1.2/32 first-match
 <no result>
```

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 <donatas@opensourcerouting.org>
lib/plist.c

index 2cfaa7d81d27daa4abe4266229803cb98cdff228..6950ab57617c6da64c3f87e02949e87336a59ed1 100644 (file)
@@ -1136,8 +1136,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)