]> git.puffer.fish Git - mirror/frr.git/commitdiff
bgpd: Check if as_type is not specified when peer is a peer-group member 17603/head
authorDonatas Abraitis <donatas@opensourcerouting.org>
Fri, 6 Dec 2024 06:25:09 +0000 (08:25 +0200)
committerDonatas Abraitis <donatas@opensourcerouting.org>
Fri, 6 Dec 2024 06:25:09 +0000 (08:25 +0200)
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>
bgpd/bgpd.c

index dccac3eceb19be44790c6f7c10c1c964e998b395..7b21c29ea663480b15236b9c27b27be9a55e5abe 100644 (file)
@@ -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;