]> git.puffer.fish Git - mirror/frr.git/commitdiff
bgpd: Ensure correct flags when inheriting config from a peer group
authorDonald Sharp <sharpd@nvidia.com>
Thu, 1 Dec 2022 18:06:40 +0000 (13:06 -0500)
committerDonald Sharp <sharpd@nvidia.com>
Mon, 5 Dec 2022 14:11:21 +0000 (09:11 -0500)
When a peer is a peer-group based peer, and the config is inherited
from the peer group, let's ensure that the CONFIG_NODE flag stays
no matter what.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
bgpd/bgpd.c

index 12ee96ff4506b3bc96b081b4ccaf46a599ccaf8a..9811b364bf1d495eae7b33d2cb224d4b58078b41 100644 (file)
@@ -2649,6 +2649,7 @@ static void peer_group2peer_config_copy(struct peer_group *group,
 {
        uint32_t flags_tmp;
        struct peer *conf;
+       bool config_node = !!CHECK_FLAG(peer->flags, PEER_FLAG_CONFIG_NODE);
 
        conf = group->conf;
 
@@ -2676,6 +2677,9 @@ static void peer_group2peer_config_copy(struct peer_group *group,
        SET_FLAG(peer->flags, flags_tmp);
        SET_FLAG(peer->flags_invert, conf->flags_invert);
 
+       if (config_node)
+               SET_FLAG(peer->flags, PEER_FLAG_CONFIG_NODE);
+
        /* peer timers apply */
        if (!CHECK_FLAG(peer->flags_override, PEER_FLAG_TIMER)) {
                PEER_ATTR_INHERIT(peer, group, holdtime);