From 3c7a6357222a181ad1e6ce37cb0cb4737ec82426 Mon Sep 17 00:00:00 2001 From: Shbinging Date: Fri, 21 Mar 2025 02:57:28 +0000 Subject: [PATCH] babeld: fix hello packets not sent with configured hello timer Same issue occurring as previously addressed in https://github.com/FRRouting/frr/pull/9092. The root cause is: "Sending a Hello message before restarting the hello timer to avoid session flaps in case of larger hello interval configurations." Signed-off-by: Shbinging --- babeld/babel_interface.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/babeld/babel_interface.c b/babeld/babel_interface.c index 2e0a51dd8c..c99dadd083 100644 --- a/babeld/babel_interface.c +++ b/babeld/babel_interface.c @@ -366,12 +366,19 @@ DEFPY (babel_set_hello_interval, { VTY_DECLVAR_CONTEXT(interface, ifp); babel_interface_nfo *babel_ifp; + unsigned int old_interval; babel_ifp = babel_get_if_nfo(ifp); assert (babel_ifp != NULL); + old_interval = babel_ifp->hello_interval; babel_ifp->hello_interval = no ? BABEL_DEFAULT_HELLO_INTERVAL : hello_interval; + + if (old_interval != babel_ifp->hello_interval){ + set_timeout(&babel_ifp->hello_timeout, babel_ifp->hello_interval); + send_hello(ifp); + } return CMD_SUCCESS; } -- 2.39.5