From 4a0872fc73d8539b68ff6ecdb504db8300d1096f Mon Sep 17 00:00:00 2001 From: Rafael Zalamena Date: Tue, 23 Mar 2021 12:19:20 -0300 Subject: [PATCH] bgpd: improve BFD with timers configuration Move `bgp_peer_config_apply` outside `bgp_peer_configure_bfd` (and document it) so we only call the session installation once with one set of timers. It also makes all calls of that function equal (e.g. always calls `bgp_peer_config_apply` afterwards). Signed-off-by: Rafael Zalamena --- bgpd/bgp_bfd.c | 3 ++- bgpd/bgp_bfd.h | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/bgpd/bgp_bfd.c b/bgpd/bgp_bfd.c index 7656ad59ec..f1bdcc8bb4 100644 --- a/bgpd/bgp_bfd.c +++ b/bgpd/bgp_bfd.c @@ -310,7 +310,6 @@ void bgp_peer_configure_bfd(struct peer *p, bool manual) p->nexthop.ifp->name); bfd_sess_enable(p->bfd_config->session, true); - bgp_peer_config_apply(p, p->group); } static void bgp_peer_remove_bfd(struct peer *p) @@ -448,6 +447,8 @@ DEFUN (neighbor_bfd, else bgp_peer_configure_bfd(peer, true); + bgp_peer_config_apply(peer, peer->group); + return CMD_SUCCESS; } diff --git a/bgpd/bgp_bfd.h b/bgpd/bgp_bfd.h index ec2772b69b..9dca48a437 100644 --- a/bgpd/bgp_bfd.h +++ b/bgpd/bgp_bfd.h @@ -60,6 +60,9 @@ extern void bgp_peer_config_apply(struct peer *p, struct peer_group *pg); /** * Allocates and configure BFD session for peer. If it is already configured, * then it does nothing. + * + * Always call `bgp_peer_config_apply` afterwards if you need the changes + * immediately applied. */ extern void bgp_peer_configure_bfd(struct peer *p, bool manual);