0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-11-08 12:18:42 +00:00

BGP, L3VPN: Fix MPLS channel reload

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.
This commit is contained in:
Ondrej Zajicek 2023-09-30 23:18:04 +02:00
parent a7a9df8639
commit d8130da86b
2 changed files with 12 additions and 1 deletions

View File

@ -1414,6 +1414,16 @@ bgp_reload_routes(struct channel *C)
struct bgp_proto *p = (void *) C->proto; struct bgp_proto *p = (void *) C->proto;
struct bgp_channel *c = (void *) C; 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 */ /* Ignore non-BGP channels */
if (C->channel != &channel_bgp) if (C->channel != &channel_bgp)
return; return;

View File

@ -296,7 +296,8 @@ l3vpn_reload_routes(struct channel *C)
break; break;
case NET_MPLS: case NET_MPLS:
/* FIXME */ channel_request_feeding(p->ip4_channel);
channel_request_feeding(p->ip6_channel);
break; break;
} }
} }