diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c index a8217bca1e..403bdb653c 100644 --- a/bgpd/bgp_route.c +++ b/bgpd/bgp_route.c @@ -2832,6 +2832,17 @@ bgp_update (struct peer *peer, struct prefix *p, u_int32_t addpath_id, bgp_unlock_node (rn); +#if ENABLE_BGP_VNC + /* + * Filtered update is treated as an implicit withdrawal (see bgp_rib_remove() + * a few lines above) + */ + if ((SAFI_MPLS_VPN == safi) || (SAFI_ENCAP == safi)) + { + rfapiProcessWithdraw(peer, NULL, p, prd, NULL, afi, safi, type, 0); + } +#endif + return 0; } diff --git a/bgpd/rfapi/rfapi.c b/bgpd/rfapi/rfapi.c index 3a6c313888..6ca45496e4 100644 --- a/bgpd/rfapi/rfapi.c +++ b/bgpd/rfapi/rfapi.c @@ -1724,11 +1724,17 @@ rfapi_query_inner ( { char buf[BUFSIZ]; + char *s; prefix2str (&p, buf, BUFSIZ); buf[BUFSIZ - 1] = 0; /* guarantee NUL-terminated */ vnc_zlog_debug_verbose ("%s(rfd=%p, target=%s, ppNextHop=%p)", __func__, rfd, buf, ppNextHopEntry); + + s = ecommunity_ecom2str(rfd->import_table->rt_import_list, + ECOMMUNITY_FORMAT_ROUTE_MAP); + vnc_zlog_debug_verbose("%s rfd->import_table=%p, rfd->import_table->rt_import_list: %s", + __func__, rfd->import_table, s); XFREE (MTYPE_ECOMMUNITY_STR, s); } afi = family2afi (p.family); diff --git a/bgpd/rfapi/rfapi_vty.c b/bgpd/rfapi/rfapi_vty.c index f7c3773fd4..d64af8dba4 100644 --- a/bgpd/rfapi/rfapi_vty.c +++ b/bgpd/rfapi/rfapi_vty.c @@ -57,6 +57,7 @@ #include "bgpd/rfapi/vnc_debug.h" #define DEBUG_L2_EXTRA 0 +#define DEBUG_SHOW_EXTRA 0 #define VNC_SHOW_STR "VNC information\n" @@ -1520,6 +1521,9 @@ rfapiShowRemoteRegistrationsIt ( fp (out, "Displayed %d out of %d %s%s", printed, total, type, HVTY_NEWLINE); +#if DEBUG_SHOW_EXTRA + fp(out, "IT table above: it=%p%s", it, HVTY_NEWLINE); +#endif } return printed; }