summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bgpd/bgp_route.c11
-rw-r--r--bgpd/rfapi/rfapi.c6
-rw-r--r--bgpd/rfapi/rfapi_vty.c4
3 files changed, 21 insertions, 0 deletions
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;
}