summaryrefslogtreecommitdiffstats
path: root/staticd
diff options
context:
space:
mode:
authorRafael Zalamena <rzalamena@opensourcerouting.org>2022-11-28 20:44:37 +0100
committerRafael Zalamena <rzalamena@opensourcerouting.org>2023-01-13 19:32:12 +0100
commit4fd9906bcfe5f5001c6fc092c4d12c299929dcdf (patch)
treeb93ed6c9a01a49b54c4b87f5b207c51a5be4d3f6 /staticd
parentstaticd: add command to show monitored routes (diff)
downloadfrr-4fd9906bcfe5f5001c6fc092c4d12c299929dcdf.tar.xz
frr-4fd9906bcfe5f5001c6fc092c4d12c299929dcdf.zip
staticd: fix bug on route reinstallation
When configuring a route with multiple next hops on boot and the interface is missing the route never shows up (even after interface is properly learned). Fix: force route clean up by uninstalling it and putting it back entirely instead of just updating the missing next hop. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
Diffstat (limited to 'staticd')
-rw-r--r--staticd/static_routes.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/staticd/static_routes.c b/staticd/static_routes.c
index 3595cc564..ccbb98bd1 100644
--- a/staticd/static_routes.c
+++ b/staticd/static_routes.c
@@ -436,6 +436,8 @@ static void static_ifindex_update_nh(struct interface *ifp, bool up,
nh->ifindex = IFINDEX_INTERNAL;
}
+ /* Remove previously configured route if any. */
+ static_uninstall_path(pn);
static_install_path(pn);
}