]> git.puffer.fish Git - matthieu/frr.git/commitdiff
bgpd: Check if as_type is not specified when peer is a peer-group member
authorDonatas Abraitis <donatas@opensourcerouting.org>
Fri, 6 Dec 2024 06:25:09 +0000 (08:25 +0200)
committerMergify <37929162+mergify[bot]@users.noreply.github.com>
Fri, 6 Dec 2024 14:57:11 +0000 (14:57 +0000)
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 <donatas@opensourcerouting.org>
(cherry picked from commit 2797506a5ea6d9de8fd7ee217879c15ee9c5acd6)

bgpd/bgpd.c

index e08e72e01cbc083318abd7f6f8f6c2177cea8688..c452040f8ddc9638db6a1d2881c34d0674a27b2d 100644 (file)
@@ -2195,8 +2195,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;