From 451eb5a2f81b4bcc0c18ed9a38ab2b55d5f0a277 Mon Sep 17 00:00:00 2001 From: Rafael Zalamena Date: Thu, 13 Sep 2018 10:09:03 -0300 Subject: [PATCH] bfdd: disable echo on neighbor request Don't send echo packets when the neighbor configures echo-interval of 0 (e.g. disabled). Signed-off-by: Rafael Zalamena --- bfdd/bfd.c | 6 ++++-- bfdd/bfd_packet.c | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/bfdd/bfd.c b/bfdd/bfd.c index cf7c027db5..8d9de857f5 100644 --- a/bfdd/bfd.c +++ b/bfdd/bfd.c @@ -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; } diff --git a/bfdd/bfd_packet.c b/bfdd/bfd_packet.c index 8acb9438c5..1ba5ee826f 100644 --- a/bfdd/bfd_packet.c +++ b/bfdd/bfd_packet.c @@ -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; } -- 2.39.5