summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@nvidia.com>2022-12-01 13:06:40 -0500
committerDonald Sharp <sharpd@nvidia.com>2022-12-05 09:11:21 -0500
commitb8579ee71269c8cac7b426a0acff59b129db25dd (patch)
tree28021bdccae69756bcce837bae7af1f406ae395c
parent69ef3f3136ead5be13ce6b49bdad65052c282f9b (diff)
bgpd: Ensure correct flags when inheriting config from a peer group
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>
-rw-r--r--bgpd/bgpd.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c
index 12ee96ff45..9811b364bf 100644
--- a/bgpd/bgpd.c
+++ b/bgpd/bgpd.c
@@ -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);