]> git.ipfire.org Git - thirdparty/bird.git/blobdiff - proto/bgp/bgp.c
BGP, L3VPN: Fix MPLS channel reload
[thirdparty/bird.git] / proto / bgp / bgp.c
index 4651b76a2f84bfb319aab98d23b7c9fb6485103c..f8146bdf7e0e3cdac158535f2e0d1a9fa76977b5 100644 (file)
@@ -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;