Merge pull request #9699 from manojvn/379032-dev

ospf6d: minor struct compare issues.
This commit is contained in:
Russ White 2021-10-06 19:00:39 -04:00 committed by GitHub
commit 45ebf5f134
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 22 additions and 27 deletions

View File

@ -53,6 +53,16 @@
unsigned char conf_debug_ospf6_abr; unsigned char conf_debug_ospf6_abr;
int ospf6_ls_origin_same(struct ospf6_path *o_path, struct ospf6_path *r_path)
{
if (((o_path->origin.type == r_path->origin.type)
&& (o_path->origin.id == r_path->origin.id)
&& (o_path->origin.adv_router == r_path->origin.adv_router)))
return 1;
else
return 0;
}
bool ospf6_check_and_set_router_abr(struct ospf6 *o) bool ospf6_check_and_set_router_abr(struct ospf6 *o)
{ {
struct listnode *node; struct listnode *node;
@ -815,9 +825,8 @@ void ospf6_abr_old_path_update(struct ospf6_route *old_route,
struct ospf6_nexthop *nh, *rnh; struct ospf6_nexthop *nh, *rnh;
for (ALL_LIST_ELEMENTS(old_route->paths, anode, anext, o_path)) { for (ALL_LIST_ELEMENTS(old_route->paths, anode, anext, o_path)) {
if (o_path->area_id != route->path.area_id || if (o_path->area_id != route->path.area_id
(memcmp(&(o_path)->origin, &(route)->path.origin, || !ospf6_ls_origin_same(o_path, &route->path))
sizeof(struct ospf6_ls_origin)) != 0))
continue; continue;
if ((o_path->cost == route->path.cost) && if ((o_path->cost == route->path.cost) &&
@ -1232,9 +1241,8 @@ void ospf6_abr_examin_summary(struct ospf6_lsa *lsa, struct ospf6_area *oa)
for (ALL_LIST_ELEMENTS_RO(old_route->paths, anode, for (ALL_LIST_ELEMENTS_RO(old_route->paths, anode,
o_path)) { o_path)) {
if (o_path->area_id == route->path.area_id && if (o_path->area_id == route->path.area_id
(memcmp(&(o_path)->origin, &(route)->path.origin, && ospf6_ls_origin_same(o_path, &route->path))
sizeof(struct ospf6_ls_origin)) == 0))
break; break;
} }

View File

@ -89,5 +89,7 @@ extern void ospf6_abr_init(void);
extern void ospf6_abr_range_update(struct ospf6_route *range, extern void ospf6_abr_range_update(struct ospf6_route *range,
struct ospf6 *ospf6); struct ospf6 *ospf6);
extern void ospf6_abr_remove_unapproved_summaries(struct ospf6 *ospf6); extern void ospf6_abr_remove_unapproved_summaries(struct ospf6 *ospf6);
extern int ospf6_ls_origin_same(struct ospf6_path *o_path,
struct ospf6_path *r_path);
#endif /*OSPF6_ABR_H*/ #endif /*OSPF6_ABR_H*/

View File

@ -290,9 +290,7 @@ void ospf6_asbr_update_route_ecmp_path(struct ospf6_route *old,
* origin. * origin.
*/ */
if (o_path->area_id != route->path.area_id if (o_path->area_id != route->path.area_id
|| (memcmp(&(o_path)->origin, &(route)->path.origin, || !ospf6_ls_origin_same(o_path, &route->path))
sizeof(struct ospf6_ls_origin))
!= 0))
continue; continue;
/* Cost is not same then delete current path */ /* Cost is not same then delete current path */
@ -411,10 +409,7 @@ void ospf6_asbr_update_route_ecmp_path(struct ospf6_route *old,
for (ALL_LIST_ELEMENTS_RO(old_route->paths, anode, for (ALL_LIST_ELEMENTS_RO(old_route->paths, anode,
o_path)) { o_path)) {
if (o_path->area_id == route->path.area_id if (o_path->area_id == route->path.area_id
&& (memcmp(&(o_path)->origin, && ospf6_ls_origin_same(o_path, &route->path))
&(route)->path.origin,
sizeof(struct ospf6_ls_origin))
== 0))
break; break;
} }
/* If path is not found in old_route paths's list, /* If path is not found in old_route paths's list,

View File

@ -1237,7 +1237,6 @@ void ospf6_receive_lsa(struct ospf6_neighbor *from,
ospf6_lsa_delete(new); ospf6_lsa_delete(new);
return; return;
} }
return;
} }
} }

View File

@ -1524,9 +1524,8 @@ void ospf6_intra_prefix_route_ecmp_path(struct ospf6_area *oa,
/* Check old route path and route has same /* Check old route path and route has same
* origin. * origin.
*/ */
if (o_path->area_id != route->path.area_id || if (o_path->area_id != route->path.area_id
(memcmp(&(o_path)->origin, &(route)->path.origin, || !ospf6_ls_origin_same(o_path, &route->path))
sizeof(struct ospf6_ls_origin)) != 0))
continue; continue;
/* Cost is not same then delete current path */ /* Cost is not same then delete current path */
@ -1630,10 +1629,8 @@ void ospf6_intra_prefix_route_ecmp_path(struct ospf6_area *oa,
*/ */
for (ALL_LIST_ELEMENTS_RO(old_route->paths, anode, for (ALL_LIST_ELEMENTS_RO(old_route->paths, anode,
o_path)) { o_path)) {
if (o_path->area_id == route->path.area_id && if (o_path->area_id == route->path.area_id
(memcmp(&(o_path)->origin, && ospf6_ls_origin_same(o_path, &route->path))
&(route)->path.origin,
sizeof(struct ospf6_ls_origin)) == 0))
break; break;
} }
/* If path is not found in old_route paths's list, /* If path is not found in old_route paths's list,

View File

@ -726,7 +726,6 @@ static void ospf6_dbdesc_recv_master(struct ospf6_header *oh,
zlog_debug("Ignoring LSA of reserved scope"); zlog_debug("Ignoring LSA of reserved scope");
ospf6_lsa_delete(his); ospf6_lsa_delete(his);
continue; continue;
break;
} }
if (ntohs(his->header->type) == OSPF6_LSTYPE_AS_EXTERNAL if (ntohs(his->header->type) == OSPF6_LSTYPE_AS_EXTERNAL
@ -947,7 +946,6 @@ static void ospf6_dbdesc_recv_slave(struct ospf6_header *oh,
zlog_debug("Ignoring LSA of reserved scope"); zlog_debug("Ignoring LSA of reserved scope");
ospf6_lsa_delete(his); ospf6_lsa_delete(his);
continue; continue;
break;
} }
if (OSPF6_LSA_SCOPE(his->header->type) == OSPF6_SCOPE_AS if (OSPF6_LSA_SCOPE(his->header->type) == OSPF6_SCOPE_AS
@ -1082,7 +1080,6 @@ static void ospf6_lsreq_recv(struct in6_addr *src, struct in6_addr *dst,
if (IS_OSPF6_DEBUG_MESSAGE(oh->type, RECV)) if (IS_OSPF6_DEBUG_MESSAGE(oh->type, RECV))
zlog_debug("Ignoring LSA of reserved scope"); zlog_debug("Ignoring LSA of reserved scope");
continue; continue;
break;
} }
/* Find database copy */ /* Find database copy */
@ -1634,7 +1631,6 @@ static void ospf6_lsack_recv(struct in6_addr *src, struct in6_addr *dst,
zlog_debug("Ignoring LSA of reserved scope"); zlog_debug("Ignoring LSA of reserved scope");
ospf6_lsa_delete(his); ospf6_lsa_delete(his);
continue; continue;
break;
} }
if (IS_OSPF6_DEBUG_MESSAGE(oh->type, RECV)) if (IS_OSPF6_DEBUG_MESSAGE(oh->type, RECV))

View File

@ -408,8 +408,6 @@ int ospf6_nexthop_cmp(struct ospf6_nexthop *a, struct ospf6_nexthop *b)
else else
return memcmp(&a->address, &b->address, return memcmp(&a->address, &b->address,
sizeof(struct in6_addr)); sizeof(struct in6_addr));
return 0;
} }
static int ospf6_path_cmp(struct ospf6_path *a, struct ospf6_path *b) static int ospf6_path_cmp(struct ospf6_path *a, struct ospf6_path *b)