diff options
Diffstat (limited to 'bgpd/rfapi/rfapi_rib.c')
| -rw-r--r-- | bgpd/rfapi/rfapi_rib.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/bgpd/rfapi/rfapi_rib.c b/bgpd/rfapi/rfapi_rib.c index 3a4a159215..d633023dcf 100644 --- a/bgpd/rfapi/rfapi_rib.c +++ b/bgpd/rfapi/rfapi_rib.c @@ -514,9 +514,13 @@ rfapi_info_cmp (struct rfapi_info *a, struct rfapi_info *b) void rfapiRibClear (struct rfapi_descriptor *rfd) { - struct bgp *bgp = bgp_get_default (); + struct bgp *bgp; afi_t afi; + if (rfd->bgp) + bgp = rfd->bgp; + else + bgp = bgp_get_default (); #if DEBUG_L2_EXTRA vnc_zlog_debug_verbose ("%s: rfd=%p", __func__, rfd); #endif @@ -912,7 +916,7 @@ process_pending_node ( vnc_zlog_debug_verbose ("%s: afi=%d, %s pn->info=%p", __func__, afi, buf_prefix, pn->info); - if (AFI_ETHER != afi) + if (AFI_L2VPN != afi) { rfapiQprefix2Rprefix (&pn->p, &hp); } @@ -1242,7 +1246,7 @@ callback: else { new->prefix = hp; - if (AFI_ETHER == afi) + if (AFI_L2VPN == afi) { /* hp is 0; need to set length to match AF of vn */ new->prefix.length = @@ -1330,7 +1334,7 @@ callback: else { new->prefix = hp; - if (AFI_ETHER == afi) + if (AFI_L2VPN == afi) { /* hp is 0; need to set length to match AF of vn */ new->prefix.length = @@ -1972,7 +1976,7 @@ rfapiRibPreload ( continue; } - afi = AFI_ETHER; + afi = AFI_L2VPN; rfapiL2o2Qprefix (pL2o, &pfx); } else @@ -2177,7 +2181,7 @@ rfapiRibPendingDeleteRoute ( vnc_zlog_debug_verbose ("%s: entry, it=%p, afi=%d, it_node=%p, pfx=%s", __func__, it, afi, it_node, buf); - if (AFI_ETHER == afi) + if (AFI_L2VPN == afi) { /* * ethernet import tables are per-LNI and each ethernet monitor |
