]> git.puffer.fish Git - mirror/frr.git/commit
zebra: Nexthops need to be ACTIVE in some cases
authorDonald Sharp <sharpd@nvidia.com>
Tue, 14 Jan 2025 20:12:32 +0000 (15:12 -0500)
committerDonald Sharp <sharpd@nvidia.com>
Tue, 14 Jan 2025 20:12:32 +0000 (15:12 -0500)
commitb61424a717fc3c3708d36ff355cdc6ca3e4c38d3
tree1c00600bfb6dbc7d8a2ac9dac6bb69d48d738bed
parentb4619da9388759cd718e61e8b89b814b60021a18
zebra: Nexthops need to be ACTIVE in some cases

Currently if you have an interface down event, Zebra
sets the nexthop(s) as !ACTIVE that use it.  On
interface up events the singleton nexthops are not being
set as ACTIVE.  Due to timing events it is sometimes
possible to end up with a route that is using a singleton

Change singleton nexthops to set the nexthop to ACTIVE.
This will allow the nexthop to be reinstalled appropriately
as well.

I was able to easily reproduce this using sharpd since
it does not attempt to reinstall the routes when a interface
goes up/down.

Before:

D>* 10.0.0.0/32 [150/0] via 192.168.102.34, dummy2, weight 1, 00:00:01

sharpd@eva ~/frr5 (master)> sudo ip link set dummy2 down ; sudo ip link set dummy2 up

D>  10.0.0.0/32 [150/0] (350) via 192.168.102.34, dummy2 inactive, weight 1, 00:00:10

After code change:

D>* 10.0.0.0/32 [150/0] (73) via 192.168.102.34, dummy2, weight 1, 00:00:14

sharpd@eva ~/frr5 (master)> sudo ip link set dummy2 down ; sudo ip link set dummy2 up

D>* 10.0.0.0/32 [150/0] (73) via 192.168.102.34, dummy2, weight 1, 00:00:21

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
zebra/zebra_nhg.c