summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafael Zalamena <rzalamena@opensourcerouting.org>2021-03-23 12:19:20 -0300
committerRafael Zalamena <rzalamena@opensourcerouting.org>2021-03-23 12:40:11 -0300
commit4a0872fc73d8539b68ff6ecdb504db8300d1096f (patch)
tree57cd0984d9646f6aa1b903dd03fda4f22d9dc8d3
parent81313f438660d48d85d7f138563feecdac01a0d8 (diff)
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 <rzalamena@opensourcerouting.org>
-rw-r--r--bgpd/bgp_bfd.c3
-rw-r--r--bgpd/bgp_bfd.h3
2 files changed, 5 insertions, 1 deletions
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);