]> git.puffer.fish Git - matthieu/frr.git/commit
ospfd: Fix quick interface down up event handling in ospf
authorDonald Sharp <sharpd@nvidia.com>
Mon, 24 May 2021 17:45:29 +0000 (13:45 -0400)
committerIgor Ryzhov <iryzhov@nfware.com>
Thu, 27 May 2021 10:18:42 +0000 (13:18 +0300)
commit4cd1da1146d7d5bab1f40e29760c52e72751db53
treee21059d759c616005e097402d905eea1d95c807b
parent6242f4f7354111eeef230f925b75283ad2f025e4
ospfd: Fix quick interface down up event handling in ospf

When we get this sequence of events:

- zebra receives interface up, sends to ospf
- ospf receives intf up, processes( including neighbor formation and spf )
  and sends route to zebra for installation.
- zebra receives route for processing, schedules it too happen in the future
- zebra receives interface down event, sends to ospf
- zebra processes route X and marks it inactive because nexthop
  interface is down
- zebra receives interface up event, sends to ospf
- ospf receives both events and processes the change and decides
  that nothing has changed so it does not send any route change for X to zebra.

At this point zebra has a route from ospf that is marked as inactive, while
ospf believes that the route should be installed properly.

Modify the code such that on an interface down event, ospf marks the routes
as changed if the ifindex is being used for a nexthop, so that when ospf
is deciding if routes have changed post spf that it can just automatically
send that route down again if it still exists.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
ospfd/ospf_interface.c
ospfd/ospf_route.c
ospfd/ospf_route.h