mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-11 09:18:53 +00:00
pimd: pim bfd vrf aware
BFD replay for all interfaces was only considering VRF_DEFAULT interface list. The change will walk all VRFs, interface list per VRF to register pim neighbor with BFD. Signed-off-by: Chirag shah <chirag@cumulusnetworks.com>
This commit is contained in:
parent
2fd8de7d96
commit
df83d4e19d
@ -295,31 +295,39 @@ static int pim_bfd_nbr_replay(int command, struct zclient *zclient,
|
||||
struct listnode *node;
|
||||
struct listnode *neigh_node;
|
||||
struct listnode *neigh_nextnode;
|
||||
struct vrf *vrf = NULL;
|
||||
|
||||
/* Send the client registration */
|
||||
bfd_client_sendmsg(zclient, ZEBRA_BFD_CLIENT_REGISTER);
|
||||
|
||||
for (ALL_LIST_ELEMENTS_RO(vrf_iflist(VRF_DEFAULT), node, ifp)) {
|
||||
pim_ifp = ifp->info;
|
||||
RB_FOREACH(vrf, vrf_name_head, &vrfs_by_name) {
|
||||
for (ALL_LIST_ELEMENTS_RO(vrf_iflist(vrf->vrf_id), node, ifp)) {
|
||||
pim_ifp = ifp->info;
|
||||
|
||||
if (!pim_ifp)
|
||||
continue;
|
||||
|
||||
if (pim_ifp->pim_sock_fd < 0)
|
||||
continue;
|
||||
|
||||
for (ALL_LIST_ELEMENTS(pim_ifp->pim_neighbor_list, neigh_node,
|
||||
neigh_nextnode, neigh)) {
|
||||
if (!neigh->bfd_info)
|
||||
if (!pim_ifp)
|
||||
continue;
|
||||
if (PIM_DEBUG_PIM_TRACE) {
|
||||
char str[INET_ADDRSTRLEN];
|
||||
pim_inet4_dump("<bfd_nbr?>", neigh->source_addr,
|
||||
str, sizeof(str));
|
||||
zlog_debug("%s: Replaying Pim Neigh %s to BFD",
|
||||
__PRETTY_FUNCTION__, str);
|
||||
|
||||
if (pim_ifp->pim_sock_fd < 0)
|
||||
continue;
|
||||
|
||||
for (ALL_LIST_ELEMENTS(pim_ifp->pim_neighbor_list,
|
||||
neigh_node, neigh_nextnode,
|
||||
neigh)) {
|
||||
if (!neigh->bfd_info)
|
||||
continue;
|
||||
if (PIM_DEBUG_PIM_TRACE) {
|
||||
char str[INET_ADDRSTRLEN];
|
||||
|
||||
pim_inet4_dump("<bfd_nbr?>",
|
||||
neigh->source_addr,
|
||||
str, sizeof(str));
|
||||
zlog_debug("%s: Replaying Pim Neigh %s to BFD vrf_id %u",
|
||||
__PRETTY_FUNCTION__, str,
|
||||
vrf->vrf_id);
|
||||
}
|
||||
pim_bfd_reg_dereg_nbr(neigh,
|
||||
ZEBRA_BFD_DEST_UPDATE);
|
||||
}
|
||||
pim_bfd_reg_dereg_nbr(neigh, ZEBRA_BFD_DEST_UPDATE);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user