From: Donatas Abraitis Date: Fri, 6 Dec 2024 06:25:09 +0000 (+0200) Subject: bgpd: Check if as_type is not specified when peer is a peer-group member X-Git-Tag: base_10.3~171^2 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=refs%2Fpull%2F17603%2Fhead;p=mirror%2Ffrr.git bgpd: Check if as_type is not specified when peer is a peer-group member Fixes this sequences: ``` neighbor pg4 peer-group neighbor 127.0.0.4 peer-group pg4 neighbor 127.0.0.4 remote-as 65004 neighbor pg5 peer-group neighbor 127.0.0.5 peer-group pg5 neighbor 127.0.0.5 remote-as internal ``` Fixes: 0dfe256 ("bgpd: Implement neighbor X remote-as auto") Signed-off-by: Donatas Abraitis --- diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c index dccac3eceb..7b21c29ea6 100644 --- a/bgpd/bgpd.c +++ b/bgpd/bgpd.c @@ -2158,8 +2158,7 @@ int peer_remote_as(struct bgp *bgp, union sockunion *su, const char *conf_if, /* When this peer is a member of peer-group. */ if (peer->group) { /* peer-group already has AS number/internal/external */ - if (peer->group->conf->as - || peer->group->conf->as_type) { + if (peer->group->conf->as || peer->group->conf->as_type != AS_UNSPECIFIED) { /* Return peer group's AS number. */ *as = peer->group->conf->as; return BGP_ERR_PEER_GROUP_MEMBER;