diff options
| author | Donald Sharp <sharpd@cumulusnetworks.com> | 2019-06-15 14:27:35 -0400 | 
|---|---|---|
| committer | Rafael Zalamena <rzalamena@opensourcerouting.org> | 2019-08-06 22:41:28 -0300 | 
| commit | 0e64ed022892be68b9655a81c82094378c2eb10f (patch) | |
| tree | a2f408d3b9cccd6b407efdc239ec3060e692492d /eigrpd/eigrp_topology.c | |
| parent | e944996140173700f73281cf7efc444377eec331 (diff) | |
eigrpd: Convert eigrp_zebra.c to use appropriate vrf_id
Use the appropriate vrf_id in eigrp_zebra based off of the
struct eigrp *eigrp.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'eigrpd/eigrp_topology.c')
| -rw-r--r-- | eigrpd/eigrp_topology.c | 14 | 
1 files changed, 9 insertions, 5 deletions
diff --git a/eigrpd/eigrp_topology.c b/eigrpd/eigrp_topology.c index 4ca7cd19d1..394a14f8c4 100644 --- a/eigrpd/eigrp_topology.c +++ b/eigrpd/eigrp_topology.c @@ -154,6 +154,7 @@ void eigrp_nexthop_entry_add(struct eigrp_prefix_entry *node,  			     struct eigrp_nexthop_entry *entry)  {  	struct list *l = list_new(); +	struct eigrp *eigrp = eigrp_lookup(VRF_DEFAULT);  	listnode_add(l, entry); @@ -161,7 +162,8 @@ void eigrp_nexthop_entry_add(struct eigrp_prefix_entry *node,  		listnode_add_sort(node->entries, entry);  		entry->prefix = node; -		eigrp_zebra_route_add(node->destination, l, node->fdistance); +		eigrp_zebra_route_add(eigrp, node->destination, +				      l, node->fdistance);  	}  	list_delete(&l); @@ -195,7 +197,7 @@ void eigrp_prefix_entry_delete(struct route_table *table,  		eigrp_nexthop_entry_delete(pe, ne);  	list_delete(&pe->entries);  	list_delete(&pe->rij); -	eigrp_zebra_route_delete(pe->destination); +	eigrp_zebra_route_delete(eigrp, pe->destination);  	prefix_free(pe->destination);  	rn->info = NULL; @@ -210,9 +212,11 @@ void eigrp_prefix_entry_delete(struct route_table *table,  void eigrp_nexthop_entry_delete(struct eigrp_prefix_entry *node,  				struct eigrp_nexthop_entry *entry)  { +	struct eigrp *eigrp = eigrp_lookup(VRF_DEFAULT); +  	if (listnode_lookup(node->entries, entry) != NULL) {  		listnode_delete(node->entries, entry); -		eigrp_zebra_route_delete(node->destination); +		eigrp_zebra_route_delete(eigrp, node->destination);  		XFREE(MTYPE_EIGRP_NEXTHOP_ENTRY, entry);  	}  } @@ -477,14 +481,14 @@ void eigrp_update_routing_table(struct eigrp_prefix_entry *prefix)  	successors = eigrp_topology_get_successor_max(prefix, eigrp->max_paths);  	if (successors) { -		eigrp_zebra_route_add(prefix->destination, successors, +		eigrp_zebra_route_add(eigrp, prefix->destination, successors,  				      prefix->fdistance);  		for (ALL_LIST_ELEMENTS_RO(successors, node, entry))  			entry->flags |= EIGRP_NEXTHOP_ENTRY_INTABLE_FLAG;  		list_delete(&successors);  	} else { -		eigrp_zebra_route_delete(prefix->destination); +		eigrp_zebra_route_delete(eigrp, prefix->destination);  		for (ALL_LIST_ELEMENTS_RO(prefix->entries, node, entry))  			entry->flags &= ~EIGRP_NEXTHOP_ENTRY_INTABLE_FLAG;  	}  | 
