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>
This commit is contained in:
Rafael Zalamena 2021-03-23 12:19:20 -03:00
parent 81313f4386
commit 4a0872fc73
2 changed files with 5 additions and 1 deletions

View File

@ -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;
}

View File

@ -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);