mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-13 19:39:28 +00:00
zebra: resolve issue with rnh not evaluating nexhops correctly
Problem discovered in testing that occasionally when an interface address was flushed, the corresponding route would be removed from the kernel and zebra but remain in the bgp table and be advertised to peers. Discovered that when zebra_rib_evaluate_nexthops spun thru the tree list of rns, if the timing and circumstances were right, it would move elements and miss evaluating some. Changed from frr_each to frr_each_safe and the problem is now gone. Ticket: CM-25301 Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
This commit is contained in:
parent
8c86cd52be
commit
739c9c90e7
@ -761,7 +761,7 @@ void zebra_rib_evaluate_rn_nexthops(struct route_node *rn, uint32_t seq)
|
||||
* nht resolution and as such we need to call the
|
||||
* nexthop tracking evaluation code
|
||||
*/
|
||||
frr_each (rnh_list, &dest->nht, rnh) {
|
||||
frr_each_safe(rnh_list, &dest->nht, rnh) {
|
||||
struct zebra_vrf *zvrf =
|
||||
zebra_vrf_lookup_by_id(rnh->vrf_id);
|
||||
struct prefix *p = &rnh->node->p;
|
||||
|
Loading…
Reference in New Issue
Block a user