diff options
Diffstat (limited to 'proto/bgp/bgp.c')
-rw-r--r-- | proto/bgp/bgp.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/proto/bgp/bgp.c b/proto/bgp/bgp.c index 4651b76a..f8146bdf 100644 --- a/proto/bgp/bgp.c +++ b/proto/bgp/bgp.c @@ -1414,6 +1414,16 @@ bgp_reload_routes(struct channel *C) 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; |