mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-17 20:09:38 +00:00
Merge pull request #11028 from ton31337/fix/pass_non_transitive_communities_via_rsclient
bgpd: Pass non-transitive ext-communities between Route Server and RS clients
This commit is contained in:
commit
eb3bd82451
@ -4177,9 +4177,14 @@ bgp_size_t bgp_packet_attribute(struct bgp *bgp, struct peer *peer,
|
|||||||
if (CHECK_FLAG(peer->af_flags[afi][safi], PEER_FLAG_SEND_EXT_COMMUNITY)
|
if (CHECK_FLAG(peer->af_flags[afi][safi], PEER_FLAG_SEND_EXT_COMMUNITY)
|
||||||
&& (attr->flag & ATTR_FLAG_BIT(BGP_ATTR_EXT_COMMUNITIES))) {
|
&& (attr->flag & ATTR_FLAG_BIT(BGP_ATTR_EXT_COMMUNITIES))) {
|
||||||
struct ecommunity *ecomm = bgp_attr_get_ecommunity(attr);
|
struct ecommunity *ecomm = bgp_attr_get_ecommunity(attr);
|
||||||
|
bool transparent = CHECK_FLAG(peer->af_flags[afi][safi],
|
||||||
|
PEER_FLAG_RSERVER_CLIENT) &&
|
||||||
|
from &&
|
||||||
|
CHECK_FLAG(from->af_flags[afi][safi],
|
||||||
|
PEER_FLAG_RSERVER_CLIENT);
|
||||||
|
|
||||||
if (peer->sort == BGP_PEER_IBGP
|
if (peer->sort == BGP_PEER_IBGP ||
|
||||||
|| peer->sort == BGP_PEER_CONFED) {
|
peer->sort == BGP_PEER_CONFED || transparent) {
|
||||||
if (ecomm->size * 8 > 255) {
|
if (ecomm->size * 8 > 255) {
|
||||||
stream_putc(s,
|
stream_putc(s,
|
||||||
BGP_ATTR_FLAG_OPTIONAL
|
BGP_ATTR_FLAG_OPTIONAL
|
||||||
|
Loading…
Reference in New Issue
Block a user