]> git.puffer.fish Git - matthieu/frr.git/commitdiff
bfdd: disable echo on neighbor request
authorRafael Zalamena <rzalamena@opensourcerouting.org>
Thu, 13 Sep 2018 13:09:03 +0000 (10:09 -0300)
committerRafael Zalamena <rzalamena@opensourcerouting.org>
Mon, 1 Oct 2018 17:15:25 +0000 (14:15 -0300)
Don't send echo packets when the neighbor configures echo-interval of 0
(e.g. disabled).

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

index cf7c027db5d8f8022c1825a5473589cca5dae11a..8d9de857f5c6a8a8f9b0bfdcf737093c92bc1328 100644 (file)
@@ -157,7 +157,8 @@ void ptm_bfd_echo_stop(struct bfd_session *bfd, int polling)
 void ptm_bfd_echo_start(struct bfd_session *bfd)
 {
        bfd->echo_detect_TO = (bfd->remote_detect_mult * bfd->echo_xmt_TO);
-       ptm_bfd_echo_xmt_TO(bfd);
+       if (bfd->echo_detect_TO > 0)
+               ptm_bfd_echo_xmt_TO(bfd);
 
        bfd->polling = 1;
        bfd->new_timers.desired_min_tx = bfd->up_min_tx;
@@ -324,7 +325,8 @@ int bfd_echo_xmt_cb(struct thread *t)
 {
        struct bfd_session *bs = THREAD_ARG(t);
 
-       ptm_bfd_echo_xmt_TO(bs);
+       if (bs->echo_xmt_TO > 0)
+               ptm_bfd_echo_xmt_TO(bs);
 
        return 0;
 }
index 8acb9438c564662af5ccc903ce3becb3229ebe5b..1ba5ee826f5b334ad09133ee87358c5963f8a17a 100644 (file)
@@ -197,7 +197,8 @@ static int ptm_bfd_process_echo_pkt(int s)
        bfd->echo_detect_TO = bfd->remote_detect_mult * bfd->echo_xmt_TO;
 
        /* Update echo receive timeout. */
-       bfd_echo_recvtimer_update(bfd);
+       if (bfd->echo_detect_TO > 0)
+               bfd_echo_recvtimer_update(bfd);
 
        return 0;
 }