summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfdd/bfd.c6
-rw-r--r--bfdd/bfd_packet.c3
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;
}