]> git.puffer.fish Git - matthieu/frr.git/commitdiff
bfdd: apply new timers on on-going connections
authorRafael Zalamena <rzalamena@opensourcerouting.org>
Mon, 4 Feb 2019 15:44:52 +0000 (13:44 -0200)
committerRafael Zalamena <rzalamena@opensourcerouting.org>
Thu, 14 Feb 2019 16:18:23 +0000 (14:18 -0200)
Apply new timers when only one side is negotiating new settings: when
sending the final bit we must apply the remote settings, otherwise
we'll keep the previous transmission rate.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
bfdd/bfd_packet.c

index 992ad09d32d2da38389c001511940e5e1675e372..6397feb8009fa4bbe90489746305fffb8d51adc3 100644 (file)
@@ -656,8 +656,13 @@ int bfd_recv_cb(struct thread *t)
         *
         * RFC 5880, Section 6.5.
         */
-       if (BFD_GETPBIT(cp->flags))
+       if (BFD_GETPBIT(cp->flags)) {
+               /* We are finalizing a poll negotiation. */
+               bs_final_handler(bfd);
+
+               /* Send the control packet with the final bit immediately. */
                ptm_bfd_snd(bfd, 1);
+       }
 
        return 0;
 }