mirror_frr/staticd
Igor Ryzhov cb781f6097 staticd: fix NB dependency hack
Currently, staticd configuration is tightly coupled with VRF existence.
Because of that, it has to use a hack in NB infrastructure to create a
VRF configuration when at least one static route is configured for this
VRF. This hack is incompatible with mgmtd, because mgmtd doesn't execute
configuration callbacks. Because of that, the configuration may become
out of sync between mgmtd and staticd. There are two main cases:

1. Create static route in a VRF. The VRF data node will be created
   automatically in staticd by the NB hack, but not in mgmtd.
2. Delete VRF which has some static routes configured. The static route
   configuration will be deleted from staticd by the NB hack, but not
   from mgmtd.

To fix the problem, decouple configuration of static routes from VRF
configuration. Now it is possible to configure static routes even if the
VRF doesn't exist yet. Once the VRF is created, staticd applies all the
preconfigured routes.

This change also fixes the problem with static routes being preserved in
the system when staticd "control-plane-protocol" container is deleted
but the VRF is still configured.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2024-02-02 00:57:59 +02:00
..
.gitignore staticd: Start the addition of a staticd 2018-07-29 12:37:24 -04:00
Makefile staticd: Start the addition of a staticd 2018-07-29 12:37:24 -04:00
static_bfd.c staticd: fix NB dependency hack 2024-02-02 00:57:59 +02:00
static_debug.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
static_debug.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
static_main.c staticd: fix NB dependency hack 2024-02-02 00:57:59 +02:00
static_nb_config.c staticd: fix NB dependency hack 2024-02-02 00:57:59 +02:00
static_nb.c mgmtd, staticd: output staticd configuration from mgmtd 2023-11-21 13:28:40 +02:00
static_nb.h staticd: fix NB dependency hack 2024-02-02 00:57:59 +02:00
static_nht.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
static_nht.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
static_routes.c staticd: fix NB dependency hack 2024-02-02 00:57:59 +02:00
static_routes.h staticd: fix NB dependency hack 2024-02-02 00:57:59 +02:00
static_vrf.c staticd: fix NB dependency hack 2024-02-02 00:57:59 +02:00
static_vrf.h staticd: fix NB dependency hack 2024-02-02 00:57:59 +02:00
static_vty.c Revert "staticd: Accept full blackhole typed keywords for ip_route_cmd" 2024-02-02 00:25:15 +02:00
static_vty.h mgmtd, staticd: output staticd configuration from mgmtd 2023-11-21 13:28:40 +02:00
static_zebra.c staticd: fix NB dependency hack 2024-02-02 00:57:59 +02:00
static_zebra.h *: Convert struct event_master to struct event_loop 2023-03-24 08:32:17 -04:00
subdir.am isisd: staticd: need to link directly against libyang 2023-10-26 22:53:44 -04:00