linux-cp: handle ipv4 routes when link goes down 30/35530/5
authorAlexander Chernavin <[email protected]>
Wed, 2 Mar 2022 16:12:49 +0000 (16:12 +0000)
committerMatthew Smith <[email protected]>
Fri, 25 Mar 2022 13:15:21 +0000 (13:15 +0000)
commitd373ebef012b1fe94c3df0b92e8c27f90cf782f9
treeb288f3948ce2a65cf7794854f00429561556cfb7
parentd545f04d3c29d53983b442be7cbfc14eed9280c3
linux-cp: handle ipv4 routes when link goes down

Type: improvement

Currently, when the link goes down on an interface, routes that resolve
through that interface and created with Nexthop API are removed by the
kernel. However, IPv4 routes remain in the FIB because the kernel
doesn't send any notifications about that.

And for the plugin working with user-space applications that create
routes in the kernel using Nexthop API there should be a mechanism to
synchronize the FIB and the kernel in this case.

With this change, add two new startup configuration options to the
plugin to be able to control what should happen with static and dynamic
routes managed by the plugin on link down:
  - del-static-on-link-down (disabled by default, delete routes created
    with the linux-cp static FIB source on link down),
  - del-dynamic-on-link-down (disabled by default, delete routes created
    with the linux-cp dynamic FIB source on link down).

Then, monitor link state changes on interfaces for which a linux-cp pair
exists. If the link goes down on one of the interfaces, process routes
that resolve through that interface according to the new configurations.

Signed-off-by: Alexander Chernavin <[email protected]>
Change-Id: I0fbaeeca3f3d1fcd22e8eebb08a0a4a3d0dfe5b8
src/plugins/linux-cp/lcp.c
src/plugins/linux-cp/lcp.h
src/plugins/linux-cp/lcp_cli.c
src/plugins/linux-cp/lcp_interface.c
src/plugins/linux-cp/lcp_router.c