bgpd: Allow using solo for peer-groups

Inherit solo flag for peer-group members also.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
This commit is contained in:
Donatas Abraitis 2024-09-05 15:16:05 +03:00
parent 4f185c5c9d
commit b9d4191a51
4 changed files with 6 additions and 7 deletions

View File

@ -2016,6 +2016,8 @@ int update_group_adjust_soloness(struct peer *peer, int set)
struct peer_group *group; struct peer_group *group;
struct listnode *node, *nnode; struct listnode *node, *nnode;
peer_flag_set(peer, PEER_FLAG_LONESOUL);
if (!CHECK_FLAG(peer->sflags, PEER_STATUS_GROUP)) { if (!CHECK_FLAG(peer->sflags, PEER_STATUS_GROUP)) {
peer_lonesoul_or_not(peer, set); peer_lonesoul_or_not(peer, set);
if (peer_established(peer->connection)) if (peer_established(peer->connection))

View File

@ -18678,11 +18678,8 @@ static void bgp_config_write_peer_global(struct vty *vty, struct bgp *bgp,
peer->password); peer->password);
/* neighbor solo */ /* neighbor solo */
if (CHECK_FLAG(peer->flags, PEER_FLAG_LONESOUL)) { if (peergroup_flag_check(peer, PEER_FLAG_LONESOUL))
if (!peer_group_active(peer)) { vty_out(vty, " neighbor %s solo\n", addr);
vty_out(vty, " neighbor %s solo\n", addr);
}
}
/* BGP port */ /* BGP port */
if (peer->port != BGP_PORT_DEFAULT) { if (peer->port != BGP_PORT_DEFAULT) {

View File

@ -4701,6 +4701,7 @@ static const struct peer_flag_action peer_flag_action_list[] = {
{PEER_FLAG_CAPABILITY_FQDN, 0, peer_change_none}, {PEER_FLAG_CAPABILITY_FQDN, 0, peer_change_none},
{PEER_FLAG_AS_LOOP_DETECTION, 0, peer_change_none}, {PEER_FLAG_AS_LOOP_DETECTION, 0, peer_change_none},
{PEER_FLAG_EXTENDED_LINK_BANDWIDTH, 0, peer_change_none}, {PEER_FLAG_EXTENDED_LINK_BANDWIDTH, 0, peer_change_none},
{PEER_FLAG_LONESOUL, 0, peer_change_reset_out},
{0, 0, 0}}; {0, 0, 0}};
static const struct peer_flag_action peer_af_flag_action_list[] = { static const struct peer_flag_action peer_af_flag_action_list[] = {

View File

@ -2191,8 +2191,7 @@ and will share updates.
.. clicmd:: neighbor PEER solo .. clicmd:: neighbor PEER solo
This command is used to indicate that routes advertised by the peer This command is used to indicate that routes advertised by the peer
should not be reflected back to the peer. This command only is only should not be reflected back to the peer.
meaningful when there is a single peer defined in the peer-group.
.. clicmd:: show [ip] bgp peer-group [json] .. clicmd:: show [ip] bgp peer-group [json]