frr
frr copied to clipboard
Some ISIS routes are not removed from routing table after ISIS adjacencies time out
Observed issue:
- When running isis_topo1, after ISIS adjacencies time out, not all ISIS routes are removed from routing table.
Test steps:
- Run isis_topo1
- Wait for r5 to have 2 isis adjacencies
- On r3: shutdown interface to r5
- On r4: shutdown interface to r5
- On r5: wait for isis adjacencies to time out
- On r5: issue: show ip route. This will show unexpected isis routes in the routing table.
r5# show ip route
Codes: K - kernel route, C - connected, L - local, S - static,
R - RIP, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
f - OpenFabric, t - Table-Direct,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
I>* 0.0.0.0/0 [115/10] via 10.0.11.2, r5-eth1, weight 1, 00:00:50
C>* 10.0.10.0/24 is directly connected, r5-eth0, 00:04:03
L>* 10.0.10.1/32 is directly connected, r5-eth0, 00:04:03
C>* 10.0.11.0/24 is directly connected, r5-eth1, 00:04:03
L>* 10.0.11.1/32 is directly connected, r5-eth1, 00:04:03
L * 10.254.0.5/32 is directly connected, lo, 00:04:03
C>* 10.254.0.5/32 is directly connected, lo, 00:04:03
T[20]>* 192.0.2.6/32 [15/0] via 10.0.10.6, r5-eth0, weight 1, 00:04:03
Investigation shows that:
- After the last ISIS adjacency times out (on step 5), isis_zebra_route_del_route is called for prefix 0.0.0.0.
- isis_zebra_route_del_route does not send the ZEBRA_ROUTE_DELETE message for prefix 0.0.0.0.
- isis_zebra_route_del_route returns early due to ISIS_ROUTE_FLAG_ZEBRA_SYNCED flag, on this line: https://github.com/FRRouting/frr/blob/master/isisd/isis_zebra.c#L312
Observed with this recent FRR commit:
commit bbda45a82546bc0d841de5503e14b674db5e8c80 (HEAD -> master, origin/master, origin/HEAD)
Merge: b6cb72fcc dec87faab
Author: Russ White <[email protected]>
Date: Wed Dec 20 15:42:25 2023 -0500
Merge pull request #15047 from LabNConsulting/aceelindem/fix-opaque-functab-leak
ospfd: Fix opaque functab memory leak and opaque AS External LSA cleanup problems
Observed while running FRR topotest isis_topo1 on Ubuntu 20.04.
Issue looks to be related to the following commit:
commit 7064d8a7276e1ec23b568edcf35bd36a27d953d8
Author: Carmine Scarpitta <[email protected]>
Date: Sat Jun 10 09:30:17 2023 +0200
isisd: Uninstall routes only if installed
In some cases, IS-IS may attempt to remove routes that have not been
installed before. We can prevent IS-IS from doing this by aborting
`isis_zebra_route_del_route` when the ISIS_ROUTE_FLAG_ZEBRA_SYNCED flag
is unset, meaning that the route is not installed in the kernel.
Signed-off-by: Carmine Scarpitta <[email protected]>
Hi @Karen-Schoener, thanks for reporting the issue. I'm working on it.
This issue is stale because it has been open 180 days with no activity. Comment or remove the autoclose label in order to avoid having this issue closed.
This issue will be automatically closed in the specified period unless there is further activity.