]> git.puffer.fish Git - mirror/frr.git/commit
ospf6d: Fix nexthop computation for inter-area multi-ABR ECMP
authorMartin Buck <mb-tmp-tvguho.pbz@gromit.dyndns.org>
Mon, 22 Apr 2024 15:13:23 +0000 (17:13 +0200)
committerMartin Buck <mb-tmp-tvguho.pbz@gromit.dyndns.org>
Fri, 3 May 2024 07:49:24 +0000 (09:49 +0200)
commitb9255709819e68411fa8dc8456ceae8321231b49
treec8effbdd27f30bbe2b4b7e640fcc7456aaa5da97
parentafb3020e285af046efb0fbe8c53e15f2244f0540
ospf6d: Fix nexthop computation for inter-area multi-ABR ECMP

Pre-b74e965, we always merged nexthops of old (existing) and new (newly
generated, based on a LSA update) routes, making it impossible to remove
individual nexthops from a route. b74e965 replaced this by copying nexthops
from the new route to the old route. This works as long as the old and new
route are derived from the same LSA (e.g. multiple ECMP paths to the same
ABR). However, in case of multiple parallel ABRs, each of them originates a
LSA and the nexthops derived from them need to be combined to get the proper
route nexthops. So instead of trying to incrementally update the route
nexthops based on the old and new route nexthops, always recompute the route
nexthops by merging all of its path nexthops (which we're already updating
based on the LSA being processed).

Fixes #15777.

Signed-off-by: Martin Buck <mb-tmp-tvguho.pbz@gromit.dyndns.org>
ospf6d/ospf6_abr.c