mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-11-08 12:18:42 +00:00
BGP: Fix handling of transitive extended communities
Transitive extended communities should be removed on external sessions, the old code them in all cases. Thanks to Jean-Daniel Pauget for the original patch.
This commit is contained in:
parent
5ce881be82
commit
ec331acf48
@ -717,6 +717,8 @@ bgp_decode_mp_unreach_nlri(struct bgp_parse_state *s, uint code UNUSED, uint fla
|
||||
static void
|
||||
bgp_export_ext_community(struct bgp_export_state *s, eattr *a)
|
||||
{
|
||||
if (!s->proto->is_interior)
|
||||
{
|
||||
struct adata *ad = ec_set_del_nontrans(s->pool, a->u.ptr);
|
||||
|
||||
if (ad->length == 0)
|
||||
@ -724,6 +726,14 @@ bgp_export_ext_community(struct bgp_export_state *s, eattr *a)
|
||||
|
||||
ec_set_sort_x(ad);
|
||||
a->u.ptr = ad;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (a->u.ptr->length == 0)
|
||||
UNSET(a);
|
||||
|
||||
a->u.ptr = ec_set_sort(s->pool, a->u.ptr);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
Loading…
Reference in New Issue
Block a user