]> git.puffer.fish Git - mirror/frr.git/commitdiff
nhrp: replace hard coded retry time with value derived from holdtime 15805/head
authorLou Berger <lberger@labn.net>
Tue, 23 Apr 2024 15:51:33 +0000 (11:51 -0400)
committerLou Berger <lberger@labn.net>
Tue, 23 Apr 2024 15:51:33 +0000 (11:51 -0400)
Signed-off-by: Lou Berger <lberger@labn.net>
nhrpd/nhrp_nhs.c

index acd3b7df97f68d0c77851e2bcd2f4e3c77d69aa2..f779f93486d821d6c7ad84249970306f3185d65c 100644 (file)
@@ -169,9 +169,15 @@ static void nhrp_reg_send_req(struct event *t)
        struct nhrp_cie_header *cie;
 
        if (!nhrp_peer_check(r->peer, 2)) {
-               debugf(NHRP_DEBUG_COMMON, "NHS: Waiting link for %pSU",
-                      &r->peer->vc->remote.nbma);
-               event_add_timer(master, nhrp_reg_send_req, r, 120,
+               int renewtime = if_ad->holdtime / 4;
+               /* RFC 2332 5.2.0.1 says "a retry is sent after an appropriate
+                * interval." Using holdtime/4, to be shorter than
+                * recommended renew time (holdtime/3), see RFC2332 Sec 5.2.3
+                */
+               debugf(NHRP_DEBUG_COMMON,
+                      "NHS: Waiting link for %pSU, retrying in %d seconds",
+                      &r->peer->vc->remote.nbma, renewtime);
+               event_add_timer(master, nhrp_reg_send_req, r, renewtime,
                                &r->t_register);
                return;
        }