summaryrefslogtreecommitdiff
path: root/bgpd/rfapi/rfapi_monitor.c
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2020-03-21 23:37:24 -0400
committerDonald Sharp <sharpd@cumulusnetworks.com>2020-03-24 07:51:41 -0400
commit26a3ffd60e437e66a0762c4f399eebf19ad84a4a (patch)
treef95029ad2fb8347f4d2171320eacfffb5af6e484 /bgpd/rfapi/rfapi_monitor.c
parent5a1ae2c237777c6a5a909b89b302cb9c70825092 (diff)
bgpd, lib, ripngd: Add agg_node_get_prefix
Modify code to use lookup function agg_node_get_prefix() as the abstraction layer. When we rework bgp_node to bgp_dest this will allow us to greatly limit the amount of work needed to do that. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'bgpd/rfapi/rfapi_monitor.c')
-rw-r--r--bgpd/rfapi/rfapi_monitor.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/bgpd/rfapi/rfapi_monitor.c b/bgpd/rfapi/rfapi_monitor.c
index 74094efdf3..6aea18e0b4 100644
--- a/bgpd/rfapi/rfapi_monitor.c
+++ b/bgpd/rfapi/rfapi_monitor.c
@@ -789,7 +789,8 @@ static void rfapiMonitorTimerRestart(struct rfapi_monitor_vpn *m)
* been responsible for the response, i.e., any monitors for
* the exact prefix or a parent of it.
*/
-void rfapiMonitorTimersRestart(struct rfapi_descriptor *rfd, struct prefix *p)
+void rfapiMonitorTimersRestart(struct rfapi_descriptor *rfd,
+ const struct prefix *p)
{
struct agg_node *rn;
@@ -818,12 +819,14 @@ void rfapiMonitorTimersRestart(struct rfapi_descriptor *rfd, struct prefix *p)
for (rn = agg_route_top(rfd->mon); rn;
rn = agg_route_next(rn)) {
struct rfapi_monitor_vpn *m;
+ const struct prefix *p_node;
if (!((m = rn->info)))
continue;
+ p_node = agg_node_get_prefix(m->node);
/* NB order of test is significant ! */
- if (!m->node || prefix_match(&m->node->p, p)) {
+ if (!m->node || prefix_match(p_node, p)) {
rfapiMonitorTimerRestart(m);
}
}
@@ -841,7 +844,8 @@ void rfapiMonitorItNodeChanged(
struct skiplist *nves_seen;
struct agg_node *rn = it_node;
struct bgp *bgp = bgp_get_default();
- afi_t afi = family2afi(rn->p.family);
+ const struct prefix *p = agg_node_get_prefix(rn);
+ afi_t afi = family2afi(p->family);
#if DEBUG_L2_EXTRA
char buf_prefix[PREFIX_STRLEN];
#endif
@@ -931,17 +935,14 @@ void rfapiMonitorItNodeChanged(
assert(!skiplist_insert(nves_seen,
m->rfd, NULL));
- char buf_attach_pfx[PREFIX_STRLEN];
char buf_target_pfx[PREFIX_STRLEN];
- prefix2str(&m->node->p, buf_attach_pfx,
- sizeof(buf_attach_pfx));
prefix2str(&m->p, buf_target_pfx,
sizeof(buf_target_pfx));
vnc_zlog_debug_verbose(
- "%s: update rfd %p attached to pfx %s (targ=%s)",
- __func__, m->rfd,
- buf_attach_pfx, buf_target_pfx);
+ "%s: update rfd %p attached to pfx %pRN (targ=%s)",
+ __func__, m->rfd, m->node,
+ buf_target_pfx);
/*
* update its RIB