mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-07 07:23:41 +00:00
Merge pull request #9699 from manojvn/379032-dev
ospf6d: minor struct compare issues.
This commit is contained in:
commit
45ebf5f134
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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*/
|
||||||
|
@ -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,
|
||||||
|
@ -1237,7 +1237,6 @@ void ospf6_receive_lsa(struct ospf6_neighbor *from,
|
|||||||
ospf6_lsa_delete(new);
|
ospf6_lsa_delete(new);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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,
|
||||||
|
@ -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))
|
||||||
|
@ -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)
|
||||||
|
Loading…
Reference in New Issue
Block a user