summaryrefslogtreecommitdiffstats
path: root/bgpd
diff options
context:
space:
mode:
Diffstat (limited to 'bgpd')
-rw-r--r--bgpd/bgp_updgrp.c2
-rw-r--r--bgpd/bgp_vty.c7
-rw-r--r--bgpd/bgpd.c1
3 files changed, 5 insertions, 5 deletions
diff --git a/bgpd/bgp_updgrp.c b/bgpd/bgp_updgrp.c
index b717793a4..115bc35cd 100644
--- a/bgpd/bgp_updgrp.c
+++ b/bgpd/bgp_updgrp.c
@@ -2016,6 +2016,8 @@ int update_group_adjust_soloness(struct peer *peer, int set)
struct peer_group *group;
struct listnode *node, *nnode;
+ peer_flag_set(peer, PEER_FLAG_LONESOUL);
+
if (!CHECK_FLAG(peer->sflags, PEER_STATUS_GROUP)) {
peer_lonesoul_or_not(peer, set);
if (peer_established(peer->connection))
diff --git a/bgpd/bgp_vty.c b/bgpd/bgp_vty.c
index c9c7b8049..338f6e3a5 100644
--- a/bgpd/bgp_vty.c
+++ b/bgpd/bgp_vty.c
@@ -18678,11 +18678,8 @@ static void bgp_config_write_peer_global(struct vty *vty, struct bgp *bgp,
peer->password);
/* neighbor solo */
- if (CHECK_FLAG(peer->flags, PEER_FLAG_LONESOUL)) {
- if (!peer_group_active(peer)) {
- vty_out(vty, " neighbor %s solo\n", addr);
- }
- }
+ if (peergroup_flag_check(peer, PEER_FLAG_LONESOUL))
+ vty_out(vty, " neighbor %s solo\n", addr);
/* BGP port */
if (peer->port != BGP_PORT_DEFAULT) {
diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c
index a88de651f..ad45f5d6e 100644
--- a/bgpd/bgpd.c
+++ b/bgpd/bgpd.c
@@ -4701,6 +4701,7 @@ static const struct peer_flag_action peer_flag_action_list[] = {
{PEER_FLAG_CAPABILITY_FQDN, 0, peer_change_none},
{PEER_FLAG_AS_LOOP_DETECTION, 0, peer_change_none},
{PEER_FLAG_EXTENDED_LINK_BANDWIDTH, 0, peer_change_none},
+ {PEER_FLAG_LONESOUL, 0, peer_change_reset_out},
{0, 0, 0}};
static const struct peer_flag_action peer_af_flag_action_list[] = {