summaryrefslogtreecommitdiff
path: root/zebra/interface.c
diff options
context:
space:
mode:
authorDon Slice <dslice@cumulusnetworks.com>2018-06-18 11:38:45 +0000
committerDon Slice <dslice@cumulusnetworks.com>2018-06-18 11:38:45 +0000
commit65a6617b6402e2bd8874285be6eca1734dd5b96c (patch)
treea9fecfef3bd157b5ad6b08755df5d86857107379 /zebra/interface.c
parentf4659d27c63965df76f29c8f9808cec9f89343d6 (diff)
zebra: re-install static routes needed vrf when the vrf intf comes up
Problem reported that if the vrf device is taken down and then brought back up, any static route referencing that vrf device was not re-installed. This fix runs back thru the static routes that reference the vrf device coming up and re-install them. Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
Diffstat (limited to 'zebra/interface.c')
-rw-r--r--zebra/interface.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/zebra/interface.c b/zebra/interface.c
index 7de18d683c..6125ff9a16 100644
--- a/zebra/interface.c
+++ b/zebra/interface.c
@@ -934,6 +934,12 @@ void if_up(struct interface *ifp)
/* Install connected routes to the kernel. */
if_install_connected(ifp);
+ /* Install any static routes using this vrf interface */
+ if (IS_ZEBRA_IF_VRF(ifp)) {
+ static_fixup_vrf_ids(zvrf);
+ static_config_install_delayed_routes(zvrf);
+ }
+
if (IS_ZEBRA_DEBUG_RIB_DETAILED)
zlog_debug("%u: IF %s up, scheduling RIB processing",
ifp->vrf_id, ifp->name);