zebra: import table entries are not showing up in the right table

When we are importing/removing the table entry from table X into the
default routing table we are not properly setting the table_id
of the route entry.  This is causing the route to be pushed
into the wrong internal table and to not be found for deletion.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
Donald Sharp 2019-06-25 17:10:12 -04:00
parent fe257ae733
commit 317c6a1028

View File

@ -612,7 +612,7 @@ int zebra_add_import_table_entry(struct zebra_vrf *zvrf, struct route_node *rn,
newre->flags = re->flags;
newre->metric = re->metric;
newre->mtu = re->mtu;
newre->table = 0;
newre->table = zvrf->table_id;
newre->nexthop_num = 0;
newre->uptime = monotime(NULL);
newre->instance = re->table;
@ -633,8 +633,8 @@ int zebra_del_import_table_entry(struct zebra_vrf *zvrf, struct route_node *rn,
prefix_copy(&p, &rn->p);
rib_delete(afi, SAFI_UNICAST, zvrf->vrf->vrf_id, ZEBRA_ROUTE_TABLE,
re->table, re->flags, &p, NULL, re->ng.nexthop, 0,
re->metric, re->distance, false);
re->table, re->flags, &p, NULL, re->ng.nexthop,
zvrf->table_id, re->metric, re->distance, false);
return 0;
}