Merge pull request #5264 from dslicenc/ospf-bfd-72

ospf: 7.2 BFD down not tearing down OSPF adjacency for point-to-point net…
This commit is contained in:
Rafael Zalamena 2019-11-01 13:06:29 -03:00 committed by GitHub
commit 5b8a2cac81
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -202,8 +202,9 @@ static int ospf_bfd_interface_dest_update(ZAPI_CALLBACK_ARGS)
struct interface *ifp;
struct ospf_interface *oi;
struct ospf_if_params *params;
struct ospf_neighbor *nbr;
struct ospf_neighbor *nbr = NULL;
struct route_node *node;
struct route_node *n_node;
struct prefix p;
int status;
int old_status;
@ -231,7 +232,28 @@ static int ospf_bfd_interface_dest_update(ZAPI_CALLBACK_ARGS)
if ((oi = node->info) == NULL)
continue;
nbr = ospf_nbr_lookup_by_addr(oi->nbrs, &p.u.prefix4);
/* walk the neighbor list for point-to-point network */
if (oi->type == OSPF_IFTYPE_POINTOPOINT) {
for (n_node = route_top(oi->nbrs); n_node;
n_node = route_next(n_node)) {
nbr = n_node->info;
if (nbr) {
/* skip myself */
if (nbr == oi->nbr_self) {
nbr = NULL;
continue;
}
/* Found the matching neighbor */
if (nbr->src.s_addr ==
p.u.prefix4.s_addr)
break;
}
}
} else {
nbr = ospf_nbr_lookup_by_addr(oi->nbrs, &p.u.prefix4);
}
if (!nbr || !nbr->bfd_info)
continue;