summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bgpd/bgp_bmp.c14
-rw-r--r--bgpd/bgp_zebra.c12
-rw-r--r--bgpd/bgpd.c3
-rw-r--r--bgpd/bgpd.h2
-rw-r--r--doc/user/zebra.rst10
-rw-r--r--pimd/pim_iface.c3
-rw-r--r--tests/topotests/bfd_profiles_topo1/r2/bgpd.conf2
-rw-r--r--tests/topotests/bfd_profiles_topo1/r3/bgpd.conf1
-rw-r--r--tests/topotests/bfd_profiles_topo1/r4/bgpd.conf1
-rw-r--r--tests/topotests/bgp_aggregate_address_topo1/r1/bgpd.conf2
-rw-r--r--tests/topotests/bgp_aggregate_address_topo1/r2/bgpd.conf1
-rw-r--r--tests/topotests/bgp_aggregator_zero/r1/bgpd.conf1
-rw-r--r--tests/topotests/bgp_aspath_zero/r1/bgpd.conf1
-rw-r--r--tests/topotests/bgp_bmp/bgpbmp.py15
-rw-r--r--tests/topotests/bgp_bmp/test_bgp_bmp_1.py2
-rw-r--r--tests/topotests/bgp_bmp/test_bgp_bmp_2.py2
-rw-r--r--tests/topotests/bgp_ecmp_topo1/r1/bgpd.conf20
-rw-r--r--tests/topotests/bgp_flowspec/r1/bgpd.conf1
-rw-r--r--tests/topotests/bgp_invalid_nexthop/r1/frr.conf1
-rw-r--r--tests/topotests/bgp_multiview_topo1/r1/bgpd.conf8
-rw-r--r--tests/topotests/bgp_nexthop_ipv6/r1/bgpd.conf1
-rw-r--r--tests/topotests/bgp_nexthop_ipv6/r2/bgpd.conf1
-rw-r--r--tests/topotests/bgp_nexthop_ipv6/r4/bgpd.conf1
-rw-r--r--tests/topotests/bgp_nexthop_ipv6/r5/bgpd.conf1
-rw-r--r--tests/topotests/bgp_nexthop_ipv6/r6/bgpd.conf1
-rw-r--r--tests/topotests/bgp_nexthop_ipv6/rr/bgpd.conf6
-rw-r--r--tests/topotests/bgp_nexthop_ipv6/test_bgp_nexthop_ipv6_topo1.py2
-rw-r--r--tests/topotests/bgp_path_attribute_discard/r1/frr.conf1
-rw-r--r--tests/topotests/bgp_path_attribute_discard/r2/frr.conf1
-rw-r--r--tests/topotests/bgp_peer_type_multipath_relax/r1/bgpd.conf8
-rw-r--r--tests/topotests/bgp_peer_type_multipath_relax/r2/bgpd.conf4
-rw-r--r--tests/topotests/bgp_prefix_sid/r1/bgpd.conf2
-rw-r--r--tests/topotests/bgp_prefix_sid2/r1/bgpd.conf1
-rw-r--r--tests/topotests/bgp_route_server_client/r1/bgpd.conf2
-rw-r--r--tests/topotests/bgp_route_server_client/r2/bgpd.conf8
-rw-r--r--tests/topotests/bgp_route_server_client/r3/bgpd.conf2
-rw-r--r--tests/topotests/bgp_route_server_client/r4/bgpd.conf2
-rw-r--r--tests/topotests/bgp_vrf_netns/r1/bgpd.conf1
-rw-r--r--zebra/zebra_cli.c3
39 files changed, 111 insertions, 39 deletions
diff --git a/bgpd/bgp_bmp.c b/bgpd/bgp_bmp.c
index 2e3a0388d0..d6df560260 100644
--- a/bgpd/bgp_bmp.c
+++ b/bgpd/bgp_bmp.c
@@ -467,13 +467,19 @@ static struct stream *bmp_peerstate(struct peer *peer, bool down)
struct stream *s;
size_t len;
struct timeval uptime, uptime_real;
+ uint8_t peer_type;
+ bool is_locrib = false;
uptime.tv_sec = peer->uptime;
uptime.tv_usec = 0;
monotime_to_realtime(&uptime, &uptime_real);
- uint8_t peer_type = bmp_get_peer_type(peer);
- bool is_locrib = peer_type == BMP_PEER_TYPE_LOC_RIB_INSTANCE;
+ peer_type = bmp_get_peer_type(peer);
+ if (peer_type == BMP_PEER_TYPE_LOC_RIB_INSTANCE)
+ is_locrib = true;
+ else
+ /* TODO: remove this when other RD and local instances supported */
+ peer_type = BMP_PEER_TYPE_GLOBAL_INSTANCE;
#define BGP_BMP_MAX_PACKET_SIZE 1024
#define BMP_PEERUP_INFO_TYPE_STRING 0
@@ -484,9 +490,7 @@ static struct stream *bmp_peerstate(struct peer *peer, bool down)
bmp_common_hdr(s, BMP_VERSION_3,
BMP_TYPE_PEER_UP_NOTIFICATION);
- bmp_per_peer_hdr(s, peer->bgp, peer, 0,
- BMP_PEER_TYPE_GLOBAL_INSTANCE, 0,
- &uptime_real);
+ bmp_per_peer_hdr(s, peer->bgp, peer, 0, peer_type, 0, &uptime_real);
/* Local Address (16 bytes) */
if (is_locrib)
diff --git a/bgpd/bgp_zebra.c b/bgpd/bgp_zebra.c
index 688dfacaa0..ac4a6bb03b 100644
--- a/bgpd/bgp_zebra.c
+++ b/bgpd/bgp_zebra.c
@@ -744,6 +744,7 @@ bool bgp_zebra_nexthop_set(union sockunion *local, union sockunion *remote,
int ret = 0;
struct interface *ifp = NULL;
bool v6_ll_avail = true;
+ bool shared_network_original = peer->shared_network;
memset(nexthop, 0, sizeof(struct bgp_nexthop));
@@ -838,9 +839,9 @@ bool bgp_zebra_nexthop_set(union sockunion *local, union sockunion *remote,
if (!v6_ll_avail && !peer->conf_if)
v6_ll_avail = true;
if (if_lookup_by_ipv4(&remote->sin.sin_addr, peer->bgp->vrf_id))
- peer->shared_network = 1;
+ peer->shared_network = true;
else
- peer->shared_network = 0;
+ peer->shared_network = false;
}
/* IPv6 connection, fetch and store IPv4 local address if any. */
@@ -903,11 +904,14 @@ bool bgp_zebra_nexthop_set(union sockunion *local, union sockunion *remote,
|| if_lookup_by_ipv6(&remote->sin6.sin6_addr,
remote->sin6.sin6_scope_id,
peer->bgp->vrf_id))
- peer->shared_network = 1;
+ peer->shared_network = true;
else
- peer->shared_network = 0;
+ peer->shared_network = false;
}
+ if (shared_network_original != peer->shared_network)
+ bgp_peer_bfd_update_source(peer);
+
/* KAME stack specific treatment. */
#ifdef KAME
if (IN6_IS_ADDR_LINKLOCAL(&nexthop->v6_global)
diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c
index dccac3eceb..7b21c29ea6 100644
--- a/bgpd/bgpd.c
+++ b/bgpd/bgpd.c
@@ -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;
diff --git a/bgpd/bgpd.h b/bgpd/bgpd.h
index df55d879e7..bb56fd355a 100644
--- a/bgpd/bgpd.h
+++ b/bgpd/bgpd.h
@@ -1330,7 +1330,7 @@ struct peer {
union sockunion *su_local; /* Sockunion of local address. */
union sockunion *su_remote; /* Sockunion of remote address. */
- int shared_network; /* Is this peer shared same network. */
+ bool shared_network; /* Is this peer shared same network. */
struct bgp_nexthop nexthop; /* Nexthop */
/* Roles in bgp session */
diff --git a/doc/user/zebra.rst b/doc/user/zebra.rst
index b862ba9f50..9b9298c1cd 100644
--- a/doc/user/zebra.rst
+++ b/doc/user/zebra.rst
@@ -526,16 +526,6 @@ commands in relationship to VRF. Here is an extract of some of those commands:
The network administrator can however decide to provision this command in
configuration file to provide more clarity about the intended configuration.
-.. clicmd:: netns NAMESPACE
-
- This command is based on VRF configuration mode. This command is available
- when *Zebra* is run in :option:`-n` mode. This command reflects which *Linux
- network namespace* is to be mapped with *Zebra* VRF. It is to be noted that
- *Zebra* creates and detects added/suppressed VRFs from the Linux environment
- (in fact, those managed with iproute2). The network administrator can however
- decide to provision this command in configuration file to provide more clarity
- about the intended configuration.
-
.. clicmd:: show ip route vrf VRF
The show command permits dumping the routing table associated to the VRF. If
diff --git a/pimd/pim_iface.c b/pimd/pim_iface.c
index 20e3ba184b..19460aa445 100644
--- a/pimd/pim_iface.c
+++ b/pimd/pim_iface.c
@@ -1464,8 +1464,7 @@ static void pim_if_gm_join_del_all(struct interface *ifp)
return;
for (ALL_LIST_ELEMENTS(pim_ifp->gm_join_list, node, nextnode, ij))
- pim_if_gm_join_del(ifp, ij->group_addr, ij->source_addr,
- GM_JOIN_STATIC);
+ pim_if_gm_join_del(ifp, ij->group_addr, ij->source_addr, ij->join_type);
}
ferr_r pim_if_static_group_add(struct interface *ifp, pim_addr group_addr,
diff --git a/tests/topotests/bfd_profiles_topo1/r2/bgpd.conf b/tests/topotests/bfd_profiles_topo1/r2/bgpd.conf
index 1aab1d1372..0fe6f1c1c4 100644
--- a/tests/topotests/bfd_profiles_topo1/r2/bgpd.conf
+++ b/tests/topotests/bfd_profiles_topo1/r2/bgpd.conf
@@ -5,9 +5,11 @@ router bgp 100
no bgp ebgp-requires-policy
neighbor 172.16.1.1 remote-as 100
neighbor 172.16.1.1 timers 3 10
+ neighbor 172.16.1.1 timers connect 1
neighbor 172.16.1.1 bfd profile fasttx
neighbor 2001:db8:2::2 remote-as 200
neighbor 2001:db8:2::2 timers 3 10
+ neighbor 2001:db8:2::2 timers connect 1
neighbor 2001:db8:2::2 ebgp-multihop 2
neighbor 2001:db8:2::2 bfd profile slowtx
address-family ipv4 unicast
diff --git a/tests/topotests/bfd_profiles_topo1/r3/bgpd.conf b/tests/topotests/bfd_profiles_topo1/r3/bgpd.conf
index 65647b39e5..d1168d93bc 100644
--- a/tests/topotests/bfd_profiles_topo1/r3/bgpd.conf
+++ b/tests/topotests/bfd_profiles_topo1/r3/bgpd.conf
@@ -2,6 +2,7 @@ router bgp 100
bgp router-id 10.254.254.3
neighbor 172.16.1.2 remote-as 100
neighbor 172.16.1.2 timers 3 10
+ neighbor 172.16.1.2 timers connect 1
neighbor 172.16.1.2 bfd profile DOES_NOT_EXIST
address-family ipv4 unicast
redistribute connected
diff --git a/tests/topotests/bfd_profiles_topo1/r4/bgpd.conf b/tests/topotests/bfd_profiles_topo1/r4/bgpd.conf
index 12d68270f8..1a8e6bb94d 100644
--- a/tests/topotests/bfd_profiles_topo1/r4/bgpd.conf
+++ b/tests/topotests/bfd_profiles_topo1/r4/bgpd.conf
@@ -5,6 +5,7 @@ router bgp 200
no bgp ebgp-requires-policy
neighbor 2001:db8:1::2 remote-as 100
neighbor 2001:db8:1::2 timers 3 10
+ neighbor 2001:db8:1::2 timers connect 1
neighbor 2001:db8:1::2 ebgp-multihop 2
neighbor 2001:db8:1::2 bfd profile DOES_NOT_EXIST
address-family ipv4 unicast
diff --git a/tests/topotests/bgp_aggregate_address_topo1/r1/bgpd.conf b/tests/topotests/bgp_aggregate_address_topo1/r1/bgpd.conf
index c7cf4a527f..69be4b541d 100644
--- a/tests/topotests/bgp_aggregate_address_topo1/r1/bgpd.conf
+++ b/tests/topotests/bgp_aggregate_address_topo1/r1/bgpd.conf
@@ -19,8 +19,10 @@ router bgp 65000
no bgp ebgp-requires-policy
neighbor 10.0.0.2 remote-as 65001
neighbor 10.0.0.2 timers 3 10
+ neighbor 10.0.0.2 timers connect 1
neighbor 10.0.1.2 remote-as internal
neighbor 10.0.1.2 timers 3 10
+ neighbor 10.0.1.2 timers connect 1
address-family ipv4 unicast
redistribute connected
aggregate-address 192.168.0.0/24 matching-MED-only
diff --git a/tests/topotests/bgp_aggregate_address_topo1/r2/bgpd.conf b/tests/topotests/bgp_aggregate_address_topo1/r2/bgpd.conf
index acacd86526..418624aed4 100644
--- a/tests/topotests/bgp_aggregate_address_topo1/r2/bgpd.conf
+++ b/tests/topotests/bgp_aggregate_address_topo1/r2/bgpd.conf
@@ -1,6 +1,7 @@
router bgp 65000
neighbor 10.0.1.1 remote-as internal
neighbor 10.0.1.1 timers 3 10
+ neighbor 10.0.1.1 timers connect 1
address-family ipv4 unicast
redistribute connected
exit-address-family
diff --git a/tests/topotests/bgp_aggregator_zero/r1/bgpd.conf b/tests/topotests/bgp_aggregator_zero/r1/bgpd.conf
index 002a5c78c0..a6e24b221b 100644
--- a/tests/topotests/bgp_aggregator_zero/r1/bgpd.conf
+++ b/tests/topotests/bgp_aggregator_zero/r1/bgpd.conf
@@ -3,4 +3,5 @@ router bgp 65534
no bgp ebgp-requires-policy
neighbor 10.0.0.2 remote-as external
neighbor 10.0.0.2 timers 3 10
+ neighbor 10.0.0.2 timers connect 1
!
diff --git a/tests/topotests/bgp_aspath_zero/r1/bgpd.conf b/tests/topotests/bgp_aspath_zero/r1/bgpd.conf
index 002a5c78c0..a6e24b221b 100644
--- a/tests/topotests/bgp_aspath_zero/r1/bgpd.conf
+++ b/tests/topotests/bgp_aspath_zero/r1/bgpd.conf
@@ -3,4 +3,5 @@ router bgp 65534
no bgp ebgp-requires-policy
neighbor 10.0.0.2 remote-as external
neighbor 10.0.0.2 timers 3 10
+ neighbor 10.0.0.2 timers connect 1
!
diff --git a/tests/topotests/bgp_bmp/bgpbmp.py b/tests/topotests/bgp_bmp/bgpbmp.py
index 41995e2b5e..5e8b0d9be7 100644
--- a/tests/topotests/bgp_bmp/bgpbmp.py
+++ b/tests/topotests/bgp_bmp/bgpbmp.py
@@ -216,11 +216,16 @@ def bmp_check_for_peer_message(
]
# get the list of pairs (prefix, policy, seq) for the given message type
- peers = [
- m["peer_ip"]
- for m in messages
- if "peer_ip" in m.keys() and m["bmp_log_type"] == bmp_log_type
- ]
+ peers = []
+ for m in messages:
+ if (
+ "peer_ip" in m.keys()
+ and m["peer_ip"] != "0.0.0.0"
+ and m["bmp_log_type"] == bmp_log_type
+ ):
+ peers.append(m["peer_ip"])
+ elif m["policy"] == "loc-rib" and m["bmp_log_type"] == bmp_log_type:
+ peers.append("0.0.0.0")
# check for prefixes
for ep in expected_peers:
diff --git a/tests/topotests/bgp_bmp/test_bgp_bmp_1.py b/tests/topotests/bgp_bmp/test_bgp_bmp_1.py
index 6142863441..be3e07929a 100644
--- a/tests/topotests/bgp_bmp/test_bgp_bmp_1.py
+++ b/tests/topotests/bgp_bmp/test_bgp_bmp_1.py
@@ -192,7 +192,7 @@ def test_peer_up():
"""
tgen = get_topogen()
- peers = ["192.168.0.2", "192:168::2"]
+ peers = ["192.168.0.2", "192:168::2", "0.0.0.0"]
logger.info("checking for BMP peers up messages")
diff --git a/tests/topotests/bgp_bmp/test_bgp_bmp_2.py b/tests/topotests/bgp_bmp/test_bgp_bmp_2.py
index b45452e7c4..e8f67515bd 100644
--- a/tests/topotests/bgp_bmp/test_bgp_bmp_2.py
+++ b/tests/topotests/bgp_bmp/test_bgp_bmp_2.py
@@ -200,7 +200,7 @@ def test_peer_up():
"""
tgen = get_topogen()
- peers = ["192.168.0.2", "192:168::2"]
+ peers = ["192.168.0.2", "192:168::2", "0.0.0.0"]
logger.info("checking for BMP peers up messages")
diff --git a/tests/topotests/bgp_ecmp_topo1/r1/bgpd.conf b/tests/topotests/bgp_ecmp_topo1/r1/bgpd.conf
index 49981ac589..09c65321c2 100644
--- a/tests/topotests/bgp_ecmp_topo1/r1/bgpd.conf
+++ b/tests/topotests/bgp_ecmp_topo1/r1/bgpd.conf
@@ -8,44 +8,64 @@ router bgp 100
no bgp ebgp-requires-policy
neighbor 10.0.1.101 remote-as 99
neighbor 10.0.1.101 timers 3 10
+ neighbor 10.0.1.101 timers connect 1
neighbor 10.0.1.102 remote-as 99
neighbor 10.0.1.102 timers 3 10
+ neighbor 10.0.1.102 timers connect 1
neighbor 10.0.1.103 remote-as 99
neighbor 10.0.1.103 timers 3 10
+ neighbor 10.0.1.103 timers connect 1
neighbor 10.0.1.104 remote-as 99
neighbor 10.0.1.104 timers 3 10
+ neighbor 10.0.1.104 timers connect 1
neighbor 10.0.1.105 remote-as 99
neighbor 10.0.1.105 timers 3 10
+ neighbor 10.0.1.105 timers connect 1
neighbor 10.0.2.106 remote-as 99
neighbor 10.0.2.106 timers 3 10
+ neighbor 10.0.1.106 timers connect 1
neighbor 10.0.2.107 remote-as 99
neighbor 10.0.2.107 timers 3 10
+ neighbor 10.0.1.107 timers connect 1
neighbor 10.0.2.108 remote-as 99
neighbor 10.0.2.108 timers 3 10
+ neighbor 10.0.1.108 timers connect 1
neighbor 10.0.2.109 remote-as 99
neighbor 10.0.2.109 timers 3 10
+ neighbor 10.0.1.109 timers connect 1
neighbor 10.0.2.110 remote-as 99
neighbor 10.0.2.110 timers 3 10
+ neighbor 10.0.1.110 timers connect 1
neighbor 10.0.3.111 remote-as 111
neighbor 10.0.3.111 timers 3 10
+ neighbor 10.0.1.111 timers connect 1
neighbor 10.0.3.112 remote-as 112
neighbor 10.0.3.112 timers 3 10
+ neighbor 10.0.1.112 timers connect 1
neighbor 10.0.3.113 remote-as 113
neighbor 10.0.3.113 timers 3 10
+ neighbor 10.0.1.113 timers connect 1
neighbor 10.0.3.114 remote-as 114
neighbor 10.0.3.114 timers 3 10
+ neighbor 10.0.1.114 timers connect 1
neighbor 10.0.3.115 remote-as 115
neighbor 10.0.3.115 timers 3 10
+ neighbor 10.0.1.115 timers connect 1
neighbor 10.0.4.116 remote-as 116
neighbor 10.0.4.116 timers 3 10
+ neighbor 10.0.1.116 timers connect 1
neighbor 10.0.4.117 remote-as 117
neighbor 10.0.4.117 timers 3 10
+ neighbor 10.0.1.117 timers connect 1
neighbor 10.0.4.118 remote-as 118
neighbor 10.0.4.118 timers 3 10
+ neighbor 10.0.1.118 timers connect 1
neighbor 10.0.4.119 remote-as 119
neighbor 10.0.4.119 timers 3 10
+ neighbor 10.0.1.119 timers connect 1
neighbor 10.0.4.120 remote-as 120
neighbor 10.0.4.120 timers 3 10
+ neighbor 10.0.1.120 timers connect 1
!
!
diff --git a/tests/topotests/bgp_flowspec/r1/bgpd.conf b/tests/topotests/bgp_flowspec/r1/bgpd.conf
index 4b7a20f958..288aeaf4dd 100644
--- a/tests/topotests/bgp_flowspec/r1/bgpd.conf
+++ b/tests/topotests/bgp_flowspec/r1/bgpd.conf
@@ -6,6 +6,7 @@ router bgp 100
bgp router-id 10.0.1.1
neighbor 10.0.1.101 remote-as 100
neighbor 10.0.1.101 timers 3 10
+ neighbor 10.0.1.101 timers connect 1
neighbor 10.0.1.101 update-source 10.0.1.1
address-family ipv6 flowspec
local-install r1-eth0
diff --git a/tests/topotests/bgp_invalid_nexthop/r1/frr.conf b/tests/topotests/bgp_invalid_nexthop/r1/frr.conf
index 05e1a6c825..f96aeb4366 100644
--- a/tests/topotests/bgp_invalid_nexthop/r1/frr.conf
+++ b/tests/topotests/bgp_invalid_nexthop/r1/frr.conf
@@ -8,6 +8,7 @@ router bgp 65001
no bgp ebgp-requires-policy
neighbor fc00::2 remote-as external
neighbor fc00::2 timers 3 10
+ neighbor fc00::2 timers connect 1
address-family ipv6
neighbor fc00::2 activate
exit-address-family
diff --git a/tests/topotests/bgp_multiview_topo1/r1/bgpd.conf b/tests/topotests/bgp_multiview_topo1/r1/bgpd.conf
index cd7f44ac66..ced5cb5e4d 100644
--- a/tests/topotests/bgp_multiview_topo1/r1/bgpd.conf
+++ b/tests/topotests/bgp_multiview_topo1/r1/bgpd.conf
@@ -19,10 +19,13 @@ router bgp 100 view 1
timers bgp 60 180
neighbor 172.16.1.1 remote-as 65001
neighbor 172.16.1.1 timers 3 10
+ neighbor 172.16.1.1 timers connect 1
neighbor 172.16.1.2 remote-as 65002
neighbor 172.16.1.2 timers 3 10
+ neighbor 172.16.1.2 timers connect 1
neighbor 172.16.1.5 remote-as 65005
neighbor 172.16.1.5 timers 3 10
+ neighbor 172.16.1.5 timers connect 1
!
router bgp 100 view 2
bgp router-id 172.30.1.1
@@ -32,8 +35,10 @@ router bgp 100 view 2
timers bgp 60 180
neighbor 172.16.1.3 remote-as 65003
neighbor 172.16.1.3 timers 3 10
+ neighbor 172.16.1.3 timers connect 1
neighbor 172.16.1.4 remote-as 65004
neighbor 172.16.1.4 timers 3 10
+ neighbor 172.16.1.4 timers connect 1
!
router bgp 100 view 3
bgp router-id 172.30.1.1
@@ -43,10 +48,13 @@ router bgp 100 view 3
timers bgp 60 180
neighbor 172.16.1.6 remote-as 65006
neighbor 172.16.1.6 timers 3 10
+ neighbor 172.16.1.6 timers connect 1
neighbor 172.16.1.7 remote-as 65007
neighbor 172.16.1.7 timers 3 10
+ neighbor 172.16.1.7 timers connect 1
neighbor 172.16.1.8 remote-as 65008
neighbor 172.16.1.8 timers 3 10
+ neighbor 172.16.1.8 timers connect 1
!
route-map local1 permit 10
set community 100:9999 additive
diff --git a/tests/topotests/bgp_nexthop_ipv6/r1/bgpd.conf b/tests/topotests/bgp_nexthop_ipv6/r1/bgpd.conf
index 7efa1b79fa..06ac666ce6 100644
--- a/tests/topotests/bgp_nexthop_ipv6/r1/bgpd.conf
+++ b/tests/topotests/bgp_nexthop_ipv6/r1/bgpd.conf
@@ -2,6 +2,7 @@ router bgp 65000
no bgp ebgp-requires-policy
neighbor fd00:0:2::9 remote-as internal
neighbor fd00:0:2::9 timers 3 10
+ neighbor fd00:0:2::9 timers connect 1
address-family ipv4 unicast
redistribute connected route-map RMAP4
!
diff --git a/tests/topotests/bgp_nexthop_ipv6/r2/bgpd.conf b/tests/topotests/bgp_nexthop_ipv6/r2/bgpd.conf
index 4d4ae44e28..4b696b51b3 100644
--- a/tests/topotests/bgp_nexthop_ipv6/r2/bgpd.conf
+++ b/tests/topotests/bgp_nexthop_ipv6/r2/bgpd.conf
@@ -2,6 +2,7 @@ router bgp 65000
no bgp ebgp-requires-policy
neighbor fd00:0:2::9 remote-as internal
neighbor fd00:0:2::9 timers 3 10
+ neighbor fd00:0:2::9 timers connect 1
address-family ipv4 unicast
redistribute connected route-map RMAP4
!
diff --git a/tests/topotests/bgp_nexthop_ipv6/r4/bgpd.conf b/tests/topotests/bgp_nexthop_ipv6/r4/bgpd.conf
index b14c9bace4..081909bbb3 100644
--- a/tests/topotests/bgp_nexthop_ipv6/r4/bgpd.conf
+++ b/tests/topotests/bgp_nexthop_ipv6/r4/bgpd.conf
@@ -2,6 +2,7 @@ router bgp 65001
no bgp ebgp-requires-policy
neighbor fd00:0:2::9 remote-as external
neighbor fd00:0:2::9 timers 3 10
+ neighbor fd00:0:2::9 timers connect 1
address-family ipv4 unicast
redistribute connected route-map RMAP4
!
diff --git a/tests/topotests/bgp_nexthop_ipv6/r5/bgpd.conf b/tests/topotests/bgp_nexthop_ipv6/r5/bgpd.conf
index becea2bbe6..b8f9078f51 100644
--- a/tests/topotests/bgp_nexthop_ipv6/r5/bgpd.conf
+++ b/tests/topotests/bgp_nexthop_ipv6/r5/bgpd.conf
@@ -2,6 +2,7 @@ router bgp 65002
no bgp ebgp-requires-policy
neighbor fd00:0:3::9 remote-as external
neighbor fd00:0:3::9 timers 3 10
+ neighbor fd00:0:3::9 timers connect 1
address-family ipv4 unicast
redistribute connected route-map RMAP4
!
diff --git a/tests/topotests/bgp_nexthop_ipv6/r6/bgpd.conf b/tests/topotests/bgp_nexthop_ipv6/r6/bgpd.conf
index 801736ab98..19c6bbc819 100644
--- a/tests/topotests/bgp_nexthop_ipv6/r6/bgpd.conf
+++ b/tests/topotests/bgp_nexthop_ipv6/r6/bgpd.conf
@@ -2,6 +2,7 @@ router bgp 65000
no bgp ebgp-requires-policy
neighbor fd00:0:4::9 remote-as internal
neighbor fd00:0:4::9 timers 3 10
+ neighbor fd00:0:4::9 timers connect 1
address-family ipv4 unicast
redistribute connected route-map RMAP4
!
diff --git a/tests/topotests/bgp_nexthop_ipv6/rr/bgpd.conf b/tests/topotests/bgp_nexthop_ipv6/rr/bgpd.conf
index 705ae78b8e..1c8f2fa49e 100644
--- a/tests/topotests/bgp_nexthop_ipv6/rr/bgpd.conf
+++ b/tests/topotests/bgp_nexthop_ipv6/rr/bgpd.conf
@@ -2,16 +2,22 @@ router bgp 65000
no bgp ebgp-requires-policy
neighbor fd00:0:2::1 remote-as internal
neighbor fd00:0:2::1 timers 3 10
+ neighbor fd00:0:2::1 timers connect 1
neighbor fd00:0:2::2 remote-as internal
neighbor fd00:0:2::2 timers 3 10
+ neighbor fd00:0:2::2 timers connect 1
neighbor fd00:0:2::3 remote-as internal
neighbor fd00:0:2::3 timers 3 10
+ neighbor fd00:0:2::3 timers connect 1
neighbor fd00:0:2::4 remote-as external
neighbor fd00:0:2::4 timers 3 10
+ neighbor fd00:0:2::4 timers connect 1
neighbor fd00:0:3::5 remote-as external
neighbor fd00:0:3::5 timers 3 10
+ neighbor fd00:0:3::5 timers connect 1
neighbor fd00:0:4::6 remote-as internal
neighbor fd00:0:4::6 timers 3 10
+ neighbor fd00:0:4::6 timers connect 1
address-family ipv4 unicast
neighbor fd00:0:2::1 route-reflector-client
neighbor fd00:0:2::2 route-reflector-client
diff --git a/tests/topotests/bgp_nexthop_ipv6/test_bgp_nexthop_ipv6_topo1.py b/tests/topotests/bgp_nexthop_ipv6/test_bgp_nexthop_ipv6_topo1.py
index 7875f2e0f6..58daee32c3 100644
--- a/tests/topotests/bgp_nexthop_ipv6/test_bgp_nexthop_ipv6_topo1.py
+++ b/tests/topotests/bgp_nexthop_ipv6/test_bgp_nexthop_ipv6_topo1.py
@@ -36,7 +36,7 @@ pytestmark = [pytest.mark.bgpd]
def build_topo(tgen):
- """
+ r"""
All peers are FRR BGP peers except r3 that is a exabgp peer.
rr is a route-reflector for AS 65000 iBGP peers.
Exabgp does not send any IPv6 Link-Local nexthop
diff --git a/tests/topotests/bgp_path_attribute_discard/r1/frr.conf b/tests/topotests/bgp_path_attribute_discard/r1/frr.conf
index ae7fbdd9a9..ae47862963 100644
--- a/tests/topotests/bgp_path_attribute_discard/r1/frr.conf
+++ b/tests/topotests/bgp_path_attribute_discard/r1/frr.conf
@@ -6,4 +6,5 @@ router bgp 65001
no bgp ebgp-requires-policy
neighbor 10.0.0.254 remote-as external
neighbor 10.0.0.254 timers 3 10
+ neighbor 10.0.0.254 timers connect 1
!
diff --git a/tests/topotests/bgp_path_attribute_discard/r2/frr.conf b/tests/topotests/bgp_path_attribute_discard/r2/frr.conf
index 1dafbdd8e1..30ffdefff3 100644
--- a/tests/topotests/bgp_path_attribute_discard/r2/frr.conf
+++ b/tests/topotests/bgp_path_attribute_discard/r2/frr.conf
@@ -6,5 +6,6 @@ router bgp 65254
no bgp ebgp-requires-policy
neighbor 10.0.0.254 remote-as internal
neighbor 10.0.0.254 timers 3 10
+ neighbor 10.0.0.254 timers connect 1
neighbor 10.0.0.254 path-attribute discard 26
!
diff --git a/tests/topotests/bgp_peer_type_multipath_relax/r1/bgpd.conf b/tests/topotests/bgp_peer_type_multipath_relax/r1/bgpd.conf
index 038f108aa8..e743010922 100644
--- a/tests/topotests/bgp_peer_type_multipath_relax/r1/bgpd.conf
+++ b/tests/topotests/bgp_peer_type_multipath_relax/r1/bgpd.conf
@@ -8,9 +8,17 @@ router bgp 64510
bgp bestpath compare-routerid
bgp bestpath peer-type multipath-relax
neighbor 10.0.1.2 remote-as 64510
+ neighbor 10.0.1.2 timers 3 10
+ neighbor 10.0.1.2 timers connect 1
neighbor 10.0.3.2 remote-as 64502
+ neighbor 10.0.3.2 timers 3 10
+ neighbor 10.0.3.2 timers connect 1
neighbor 10.0.4.2 remote-as 64503
+ neighbor 10.0.4.2 timers 3 10
+ neighbor 10.0.4.2 timers connect 1
neighbor 10.0.5.2 remote-as 64511
+ neighbor 10.0.5.2 timers 3 10
+ neighbor 10.0.5.2 timers connect 1
!
line vty
!
diff --git a/tests/topotests/bgp_peer_type_multipath_relax/r2/bgpd.conf b/tests/topotests/bgp_peer_type_multipath_relax/r2/bgpd.conf
index 2362a19f26..1da7173bba 100644
--- a/tests/topotests/bgp_peer_type_multipath_relax/r2/bgpd.conf
+++ b/tests/topotests/bgp_peer_type_multipath_relax/r2/bgpd.conf
@@ -7,7 +7,11 @@ router bgp 64511
bgp router-id 10.0.5.2
no bgp ebgp-requires-policy
neighbor 10.0.2.2 remote-as 64511
+ neighbor 10.0.2.2 timers 3 10
+ neighbor 10.0.2.2 timers connect 1
neighbor 10.0.5.1 remote-as 64510
+ neighbor 10.0.5.1 timers 3 10
+ neighbor 10.0.5.1 timers connect 1
!
address-family ipv4 unicast
neighbor 10.0.5.1 route-map dropall in
diff --git a/tests/topotests/bgp_prefix_sid/r1/bgpd.conf b/tests/topotests/bgp_prefix_sid/r1/bgpd.conf
index e02226f2fd..3fd5e5e9c3 100644
--- a/tests/topotests/bgp_prefix_sid/r1/bgpd.conf
+++ b/tests/topotests/bgp_prefix_sid/r1/bgpd.conf
@@ -7,8 +7,10 @@ router bgp 1
no bgp ebgp-requires-policy
neighbor 10.0.0.101 remote-as 2
neighbor 10.0.0.101 timers 3 10
+ neighbor 10.0.0.101 timers connect 1
neighbor 10.0.0.102 remote-as 3
neighbor 10.0.0.102 timers 3 10
+ neighbor 10.0.0.102 timers connect 1
!
address-family ipv4 labeled-unicast
neighbor 10.0.0.101 activate
diff --git a/tests/topotests/bgp_prefix_sid2/r1/bgpd.conf b/tests/topotests/bgp_prefix_sid2/r1/bgpd.conf
index b3ca0e114d..946103c30f 100644
--- a/tests/topotests/bgp_prefix_sid2/r1/bgpd.conf
+++ b/tests/topotests/bgp_prefix_sid2/r1/bgpd.conf
@@ -18,6 +18,7 @@ router bgp 1
no bgp ebgp-requires-policy
neighbor 10.0.0.101 remote-as 2
neighbor 10.0.0.101 timers 3 10
+ neighbor 10.0.0.101 timers connect 1
!
address-family ipv6 vpn
neighbor 10.0.0.101 activate
diff --git a/tests/topotests/bgp_route_server_client/r1/bgpd.conf b/tests/topotests/bgp_route_server_client/r1/bgpd.conf
index e464e6c50b..d379f7df45 100644
--- a/tests/topotests/bgp_route_server_client/r1/bgpd.conf
+++ b/tests/topotests/bgp_route_server_client/r1/bgpd.conf
@@ -5,7 +5,7 @@ router bgp 65001
no bgp enforce-first-as
neighbor 2001:db8:1::1 remote-as external
neighbor 2001:db8:1::1 timers 3 10
- neighbor 2001:db8:1::1 timers connect 5
+ neighbor 2001:db8:1::1 timers connect 1
address-family ipv6 unicast
redistribute connected
neighbor 2001:db8:1::1 activate
diff --git a/tests/topotests/bgp_route_server_client/r2/bgpd.conf b/tests/topotests/bgp_route_server_client/r2/bgpd.conf
index 19607660f9..7fda2b0a05 100644
--- a/tests/topotests/bgp_route_server_client/r2/bgpd.conf
+++ b/tests/topotests/bgp_route_server_client/r2/bgpd.conf
@@ -3,16 +3,16 @@ router bgp 65000 view RS
no bgp ebgp-requires-policy
neighbor 2001:db8:1::2 remote-as external
neighbor 2001:db8:1::2 timers 3 10
- neighbor 2001:db8:1::2 timers connect 5
+ neighbor 2001:db8:1::2 timers connect 1
neighbor 2001:db8:1::3 remote-as external
neighbor 2001:db8:1::3 timers 3 10
- neighbor 2001:db8:1::3 timers connect 5
+ neighbor 2001:db8:1::3 timers connect 1
neighbor 2001:db8:1::4 remote-as external
neighbor 2001:db8:1::4 timers 3 10
- neighbor 2001:db8:1::4 timers connect 5
+ neighbor 2001:db8:1::4 timers connect 1
neighbor 2001:db8:3::2 remote-as external
neighbor 2001:db8:3::2 timers 3 10
- neighbor 2001:db8:3::2 timers connect 5
+ neighbor 2001:db8:3::2 timers connect 1
address-family ipv6 unicast
redistribute connected
neighbor 2001:db8:1::2 activate
diff --git a/tests/topotests/bgp_route_server_client/r3/bgpd.conf b/tests/topotests/bgp_route_server_client/r3/bgpd.conf
index f7daba87fa..2f20b91334 100644
--- a/tests/topotests/bgp_route_server_client/r3/bgpd.conf
+++ b/tests/topotests/bgp_route_server_client/r3/bgpd.conf
@@ -5,7 +5,7 @@ router bgp 65003
no bgp enforce-first-as
neighbor 2001:db8:3::1 remote-as external
neighbor 2001:db8:3::1 timers 3 10
- neighbor 2001:db8:3::1 timers connect 5
+ neighbor 2001:db8:3::1 timers connect 1
address-family ipv6 unicast
redistribute connected
neighbor 2001:db8:3::1 activate
diff --git a/tests/topotests/bgp_route_server_client/r4/bgpd.conf b/tests/topotests/bgp_route_server_client/r4/bgpd.conf
index c907d7284e..66a1573018 100644
--- a/tests/topotests/bgp_route_server_client/r4/bgpd.conf
+++ b/tests/topotests/bgp_route_server_client/r4/bgpd.conf
@@ -5,7 +5,7 @@ router bgp 65004
no bgp enforce-first-as
neighbor 2001:db8:1::1 remote-as external
neighbor 2001:db8:1::1 timers 3 10
- neighbor 2001:db8:1::1 timers connect 5
+ neighbor 2001:db8:1::1 timers connect 1
address-family ipv6 unicast
redistribute connected
neighbor 2001:db8:1::1 activate
diff --git a/tests/topotests/bgp_vrf_netns/r1/bgpd.conf b/tests/topotests/bgp_vrf_netns/r1/bgpd.conf
index 572dce7455..2853a7a5ca 100644
--- a/tests/topotests/bgp_vrf_netns/r1/bgpd.conf
+++ b/tests/topotests/bgp_vrf_netns/r1/bgpd.conf
@@ -5,6 +5,7 @@ router bgp 100 vrf r1-bgp-cust1
no bgp ebgp-requires-policy
neighbor 10.0.1.101 remote-as 99
neighbor 10.0.1.101 timers 3 10
+ neighbor 10.0.1.101 timers connect 1
!
!
diff --git a/zebra/zebra_cli.c b/zebra/zebra_cli.c
index 6ee0fdbb8d..ca53eb2eb3 100644
--- a/zebra/zebra_cli.c
+++ b/zebra/zebra_cli.c
@@ -2252,6 +2252,9 @@ static void lib_vrf_mpls_fec_nexthop_resolution_cli_write(
}
}
+#if CONFDATE > 20251207
+CPP_NOTICE("Remove no-op netns command")
+#endif
DEFPY_YANG (vrf_netns,
vrf_netns_cmd,
"[no] netns ![NAME$netns_name]",