From: Shbinging Date: Fri, 21 Mar 2025 02:57:28 +0000 (+0000) Subject: babeld: fix hello packets not sent with configured hello timer X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=3c7a6357222a181ad1e6ce37cb0cb4737ec82426;p=matthieu%2Ffrr.git 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 --- 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; }