When a MPLS channel is reloaded, it should reload all regular MPLS-aware
channels. This causes re-evaluation of routes in FEC map and possibly
reannouncement of MPLS routes.
struct bgp_proto *p = (void *) C->proto;
struct bgp_channel *c = (void *) C;
+ /* For MPLS channel, reload all MPLS-aware channels */
+ if (C == p->p.mpls_channel)
+ {
+ BGP_WALK_CHANNELS(p, c)
+ if ((c->desc->mpls) && (p->route_refresh || c->c.in_table))
+ bgp_reload_routes(&c->c);
+
+ return;
+ }
+
/* Ignore non-BGP channels */
if (C->channel != &channel_bgp)
return;
break;
case NET_MPLS:
- /* FIXME */
+ channel_request_feeding(p->ip4_channel);
+ channel_request_feeding(p->ip6_channel);
break;
}
}