diff --git a/bfdd/bfd.c b/bfdd/bfd.c index aa30ca8ad3..9e5bc20a49 100644 --- a/bfdd/bfd.c +++ b/bfdd/bfd.c @@ -501,8 +501,10 @@ void ptm_bfd_echo_stop(struct bfd_session *bfd) void ptm_bfd_echo_start(struct bfd_session *bfd) { bfd->echo_detect_TO = (bfd->remote_detect_mult * bfd->echo_xmt_TO); - if (bfd->echo_detect_TO > 0) + if (bfd->echo_detect_TO > 0) { + bfd_echo_recvtimer_update(bfd); ptm_bfd_echo_xmt_TO(bfd); + } } void ptm_bfd_sess_up(struct bfd_session *bfd) diff --git a/bfdd/bfdd_cli.c b/bfdd/bfdd_cli.c index 44e94eb898..ba80b2363f 100644 --- a/bfdd/bfdd_cli.c +++ b/bfdd/bfdd_cli.c @@ -433,6 +433,10 @@ DEFPY_YANG( return CMD_WARNING_CONFIG_FAILED; } + if (!no && !bglobal.bg_use_dplane) { + vty_out(vty, "%% Current implementation of echo mode works only when the peer is also FRR.\n"); + } + nb_cli_enqueue_change(vty, "./echo-mode", NB_OP_MODIFY, no ? "false" : "true"); return nb_cli_apply_changes(vty, NULL); diff --git a/doc/user/bfd.rst b/doc/user/bfd.rst index 4ee8376828..7d136b183e 100644 --- a/doc/user/bfd.rst +++ b/doc/user/bfd.rst @@ -180,7 +180,8 @@ BFD peers and profiles share the same BFD session configuration commands. .. clicmd:: echo-mode Enables or disables the echo transmission mode. This mode is disabled - by default. + by default. If you are not using distributed BFD then echo mode works + only when the peer is also FRR. It is recommended that the transmission interval of control packets to be increased after enabling echo-mode to reduce bandwidth usage.