mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-06 10:22:07 +00:00
Merge pull request #8536 from idryzhov/bfd-enabled
lib: remove enabled flag for bfd sessions
This commit is contained in:
commit
b38f1fd03d
@ -308,8 +308,6 @@ void bgp_peer_configure_bfd(struct peer *p, bool manual)
|
|||||||
if (p->nexthop.ifp)
|
if (p->nexthop.ifp)
|
||||||
bfd_sess_set_interface(p->bfd_config->session,
|
bfd_sess_set_interface(p->bfd_config->session,
|
||||||
p->nexthop.ifp->name);
|
p->nexthop.ifp->name);
|
||||||
|
|
||||||
bfd_sess_enable(p->bfd_config->session, true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void bgp_peer_remove_bfd(struct peer *p)
|
static void bgp_peer_remove_bfd(struct peer *p)
|
||||||
|
38
lib/bfd.c
38
lib/bfd.c
@ -619,8 +619,6 @@ struct bfd_session_params {
|
|||||||
|
|
||||||
/** BFD session installation state. */
|
/** BFD session installation state. */
|
||||||
bool installed;
|
bool installed;
|
||||||
/** BFD session enabled. */
|
|
||||||
bool enabled;
|
|
||||||
|
|
||||||
/** Global BFD paramaters list. */
|
/** Global BFD paramaters list. */
|
||||||
TAILQ_ENTRY(bfd_session_params) entry;
|
TAILQ_ENTRY(bfd_session_params) entry;
|
||||||
@ -748,6 +746,21 @@ static int _bfd_sess_send(struct thread *t)
|
|||||||
bsp->installed = false;
|
bsp->installed = false;
|
||||||
else if (bsp->args.command == ZEBRA_BFD_DEST_REGISTER)
|
else if (bsp->args.command == ZEBRA_BFD_DEST_REGISTER)
|
||||||
bsp->installed = true;
|
bsp->installed = true;
|
||||||
|
} else {
|
||||||
|
struct ipaddr src, dst;
|
||||||
|
|
||||||
|
src.ipa_type = bsp->args.family;
|
||||||
|
src.ipaddr_v6 = bsp->args.src;
|
||||||
|
dst.ipa_type = bsp->args.family;
|
||||||
|
dst.ipaddr_v6 = bsp->args.dst;
|
||||||
|
|
||||||
|
zlog_err(
|
||||||
|
"%s: BFD session %pIA -> %pIA interface %s VRF %s(%u) was not %s",
|
||||||
|
__func__, &src, &dst,
|
||||||
|
bsp->args.ifnamelen ? bsp->args.ifname : "*",
|
||||||
|
vrf_id_to_name(bsp->args.vrf_id), bsp->args.vrf_id,
|
||||||
|
bsp->lastev == BSE_INSTALL ? "installed"
|
||||||
|
: "uninstalled");
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -782,15 +795,6 @@ void bfd_sess_free(struct bfd_session_params **bsp)
|
|||||||
XFREE(MTYPE_BFD_INFO, (*bsp));
|
XFREE(MTYPE_BFD_INFO, (*bsp));
|
||||||
}
|
}
|
||||||
|
|
||||||
void bfd_sess_enable(struct bfd_session_params *bsp, bool enable)
|
|
||||||
{
|
|
||||||
/* Remove the session when disabling. */
|
|
||||||
if (!enable)
|
|
||||||
_bfd_sess_remove(bsp);
|
|
||||||
|
|
||||||
bsp->enabled = enable;
|
|
||||||
}
|
|
||||||
|
|
||||||
void bfd_sess_set_ipv4_addrs(struct bfd_session_params *bsp,
|
void bfd_sess_set_ipv4_addrs(struct bfd_session_params *bsp,
|
||||||
struct in_addr *src, struct in_addr *dst)
|
struct in_addr *src, struct in_addr *dst)
|
||||||
{
|
{
|
||||||
@ -909,10 +913,6 @@ void bfd_sess_set_timers(struct bfd_session_params *bsp,
|
|||||||
|
|
||||||
void bfd_sess_install(struct bfd_session_params *bsp)
|
void bfd_sess_install(struct bfd_session_params *bsp)
|
||||||
{
|
{
|
||||||
/* Don't attempt to install/update when disabled. */
|
|
||||||
if (!bsp->enabled)
|
|
||||||
return;
|
|
||||||
|
|
||||||
bsp->lastev = BSE_INSTALL;
|
bsp->lastev = BSE_INSTALL;
|
||||||
thread_add_event(bsglobal.tm, _bfd_sess_send, bsp, 0, &bsp->installev);
|
thread_add_event(bsglobal.tm, _bfd_sess_send, bsp, 0, &bsp->installev);
|
||||||
}
|
}
|
||||||
@ -1060,8 +1060,8 @@ static int zclient_bfd_session_reply(ZAPI_CALLBACK_ARGS)
|
|||||||
|
|
||||||
/* Replay all activated peers. */
|
/* Replay all activated peers. */
|
||||||
TAILQ_FOREACH (bsp, &bsglobal.bsplist, entry) {
|
TAILQ_FOREACH (bsp, &bsglobal.bsplist, entry) {
|
||||||
/* Skip disabled sessions. */
|
/* Skip not installed sessions. */
|
||||||
if (!bsp->enabled)
|
if (!bsp->installed)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
/* We are reconnecting, so we must send installation. */
|
/* We are reconnecting, so we must send installation. */
|
||||||
@ -1138,8 +1138,8 @@ static int zclient_bfd_session_update(ZAPI_CALLBACK_ARGS)
|
|||||||
|
|
||||||
/* Notify all matching sessions about update. */
|
/* Notify all matching sessions about update. */
|
||||||
TAILQ_FOREACH (bsp, &bsglobal.bsplist, entry) {
|
TAILQ_FOREACH (bsp, &bsglobal.bsplist, entry) {
|
||||||
/* Skip disabled or not installed entries. */
|
/* Skip not installed entries. */
|
||||||
if (!bsp->enabled || !bsp->installed)
|
if (!bsp->installed)
|
||||||
continue;
|
continue;
|
||||||
/* Skip different VRFs. */
|
/* Skip different VRFs. */
|
||||||
if (bsp->args.vrf_id != vrf_id)
|
if (bsp->args.vrf_id != vrf_id)
|
||||||
|
@ -184,14 +184,6 @@ struct bfd_session_params *bfd_sess_new(bsp_status_update updatecb, void *args);
|
|||||||
*/
|
*/
|
||||||
void bfd_sess_free(struct bfd_session_params **bsp);
|
void bfd_sess_free(struct bfd_session_params **bsp);
|
||||||
|
|
||||||
/**
|
|
||||||
* Enable/disable session installation.
|
|
||||||
*
|
|
||||||
* \param bsp session parameters.
|
|
||||||
* \param enable knob variable.
|
|
||||||
*/
|
|
||||||
void bfd_sess_enable(struct bfd_session_params *bsp, bool enable);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the local and peer address of the BFD session.
|
* Set the local and peer address of the BFD session.
|
||||||
*
|
*
|
||||||
|
@ -99,7 +99,6 @@ void ospf_neighbor_bfd_apply(struct ospf_neighbor *nbr)
|
|||||||
bfd_sess_set_ipv4_addrs(nbr->bfd_session, NULL, &nbr->src);
|
bfd_sess_set_ipv4_addrs(nbr->bfd_session, NULL, &nbr->src);
|
||||||
bfd_sess_set_interface(nbr->bfd_session, oi->ifp->name);
|
bfd_sess_set_interface(nbr->bfd_session, oi->ifp->name);
|
||||||
bfd_sess_set_vrf(nbr->bfd_session, oi->ospf->vrf_id);
|
bfd_sess_set_vrf(nbr->bfd_session, oi->ospf->vrf_id);
|
||||||
bfd_sess_enable(nbr->bfd_session, true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Set new configuration. */
|
/* Set new configuration. */
|
||||||
|
Loading…
Reference in New Issue
Block a user