diff options
Diffstat (limited to 'bgpd/rfapi/rfapi_import.c')
| -rw-r--r-- | bgpd/rfapi/rfapi_import.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/bgpd/rfapi/rfapi_import.c b/bgpd/rfapi/rfapi_import.c index 6f5af5182a..6b37073e0e 100644 --- a/bgpd/rfapi/rfapi_import.c +++ b/bgpd/rfapi/rfapi_import.c @@ -123,7 +123,7 @@ void rfapiDebugBacktrace(void) * Count remote routes and compare with actively-maintained values. * Abort if they disagree. */ -void rfapiCheckRouteCount() +void rfapiCheckRouteCount(void) { struct bgp *bgp = bgp_get_default(); struct rfapi *h; @@ -550,11 +550,8 @@ static void rfapiBgpInfoFree(struct bgp_path_info *goner) if (goner->attr) { bgp_attr_unintern(&goner->attr); } - if (goner->extra) { - assert(!goner->extra->damp_info); /* Not used in import tbls */ - XFREE(MTYPE_BGP_ROUTE_EXTRA, goner->extra); - goner->extra = NULL; - } + if (goner->extra) + bgp_path_info_extra_free(&goner->extra); XFREE(MTYPE_BGP_ROUTE, goner); } @@ -4244,13 +4241,15 @@ static void rfapiBgpTableFilteredImport(struct bgp *bgp, for (rn1 = bgp_table_top(bgp->rib[afi][safi]); rn1; rn1 = bgp_route_next(rn1)) { - if (rn1->info) { - for (rn2 = bgp_table_top(rn1->info); rn2; + if (bgp_node_has_bgp_path_info_data(rn1)) { + + for (rn2 = bgp_table_top(bgp_node_get_bgp_table_info(rn1)); rn2; rn2 = bgp_route_next(rn2)) { struct bgp_path_info *bpi; - for (bpi = rn2->info; bpi; bpi = bpi->next) { + for (bpi = bgp_node_get_bgp_path_info(rn2); + bpi; bpi = bpi->next) { uint32_t label = 0; if (CHECK_FLAG(bpi->flags, |
