diff options
| author | Donald Sharp <sharpd@nvidia.com> | 2021-11-23 19:46:16 -0500 | 
|---|---|---|
| committer | Donald Sharp <sharpd@nvidia.com> | 2021-11-23 19:49:28 -0500 | 
| commit | 62fcbf073e06ae2a12755ad16e18f5e22d80b867 (patch) | |
| tree | ac4d3d0e0fce757210f4065486fc8f7824fa8fe0 /ospf6d/ospf6_asbr.c | |
| parent | 6e5532187f9e11d10f364fdac9f8e4efb16ff9be (diff) | |
ospf6d: Remove ospf6->external_id_table
The external_id_table was only ever used to store pointers to data
and was never used for lookup during the course of normal operations.
However it did lead to crashes because somewhere along the way
external routes stored in the external_table never had their
id associated into the external_id_table and we would assert
on the node lookup failing.
Since this code was never used for anything other than
storing data and it was never retrieved for anything useful
let's just remove it from ospf6d.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Diffstat (limited to 'ospf6d/ospf6_asbr.c')
| -rw-r--r-- | ospf6d/ospf6_asbr.c | 34 | 
1 files changed, 0 insertions, 34 deletions
diff --git a/ospf6d/ospf6_asbr.c b/ospf6d/ospf6_asbr.c index b439f947de..cba455cff0 100644 --- a/ospf6d/ospf6_asbr.c +++ b/ospf6d/ospf6_asbr.c @@ -1410,7 +1410,6 @@ void ospf6_asbr_redistribute_add(int type, ifindex_t ifindex,  	struct ospf6_route *route, *match;  	struct ospf6_external_info *info;  	struct prefix prefix_id; -	struct route_node *node;  	char ibuf[16];  	struct ospf6_redist *red; @@ -1497,13 +1496,6 @@ void ospf6_asbr_redistribute_add(int type, ifindex_t ifindex,  		else  			ospf6_route_add_nexthop(match, ifindex, NULL); -		/* create/update binding in external_id_table */ -		prefix_id.family = AF_INET; -		prefix_id.prefixlen = IPV4_MAX_BITLEN; -		prefix_id.u.prefix4.s_addr = htonl(info->id); -		node = route_node_get(ospf6->external_id_table, &prefix_id); -		node->info = match; -  		if (IS_OSPF6_DEBUG_ASBR) {  			inet_ntop(AF_INET, &prefix_id.u.prefix4, ibuf,  				  sizeof(ibuf)); @@ -2787,7 +2779,6 @@ static void ospf6_originate_new_aggr_lsa(struct ospf6 *ospf6,  					 struct ospf6_external_aggr_rt *aggr)  {  	struct prefix prefix_id; -	struct route_node *node;  	struct ospf6_lsa *lsa = NULL;  	if (IS_OSPF6_DEBUG_AGGR) @@ -2796,13 +2787,6 @@ static void ospf6_originate_new_aggr_lsa(struct ospf6 *ospf6,  	aggr->id = ospf6->external_id++; -	/* create/update binding in external_id_table */ -	prefix_id.family = AF_INET; -	prefix_id.prefixlen = 32; -	prefix_id.u.prefix4.s_addr = htonl(aggr->id); -	node = route_node_get(ospf6->external_id_table, &prefix_id); -	node->info = aggr; -  	if (IS_OSPF6_DEBUG_AGGR)  		zlog_debug(  			"Advertise AS-External Id:%pI4 prefix %pFX metric %u", @@ -3014,8 +2998,6 @@ static void ospf6_aggr_handle_external_info(void *data)  	struct ospf6_lsa *lsa = NULL;  	struct ospf6_external_info *info;  	struct ospf6 *ospf6 = NULL; -	struct prefix prefix_id; -	struct route_node *node;  	rt->aggr_route = NULL; @@ -3055,13 +3037,6 @@ static void ospf6_aggr_handle_external_info(void *data)  	info->id  = ospf6->external_id++;  	rt->path.origin.id = htonl(info->id); -	/* create/update binding in external_id_table */ -	prefix_id.family = AF_INET; -	prefix_id.prefixlen = 32; -	prefix_id.u.prefix4.s_addr = htonl(info->id); -	node = route_node_get(ospf6->external_id_table, &prefix_id); -	node->info = rt; -  	(void)ospf6_originate_type5_type7_lsas(rt, ospf6);  } @@ -3642,7 +3617,6 @@ void ospf6_handle_external_lsa_origination(struct ospf6 *ospf6,  	struct ospf6_external_aggr_rt *aggr;  	struct ospf6_external_info *info;  	struct prefix prefix_id; -	struct route_node *node;  	if (!is_default_prefix(p)) {  		aggr = ospf6_external_aggr_match(ospf6, @@ -3678,14 +3652,6 @@ void ospf6_handle_external_lsa_origination(struct ospf6 *ospf6,  	 */  	if (!info->id) {  		info->id = ospf6->external_id++; - -		/* create/update binding in external_id_table */ -		prefix_id.family = AF_INET; -		prefix_id.prefixlen = 32; -		prefix_id.u.prefix4.s_addr = htonl(info->id); -		node = route_node_get(ospf6->external_id_table, &prefix_id); -		node->info = rt; -  	} else {  		prefix_id.family = AF_INET;  		prefix_id.prefixlen = 32;  | 
