diff --git a/bgpd/bgp_bmp.c b/bgpd/bgp_bmp.c index d74454269f8b..8979068ed464 100644 --- a/bgpd/bgp_bmp.c +++ b/bgpd/bgp_bmp.c @@ -472,9 +472,6 @@ static struct stream *bmp_peerstate(struct peer *peer, bool down) uint8_t peer_type = bmp_get_peer_type(peer); bool is_locrib = peer_type == BMP_PEER_TYPE_LOC_RIB_INSTANCE; - if (is_locrib == false) - peer_type = BMP_PEER_TYPE_GLOBAL_INSTANCE; - if (bmp_get_peer_distinguisher(peer->bgp, AFI_UNSPEC, peer_type, &peer_distinguisher)) { zlog_warn("skipping bmp message for peer %s: can't get peer distinguisher", peer->host); diff --git a/tests/topotests/bgp_bmp/bgpbmp.py b/tests/topotests/bgp_bmp/bgpbmp.py index 0a0a845b3ab3..4f770ebcd1d4 100644 --- a/tests/topotests/bgp_bmp/bgpbmp.py +++ b/tests/topotests/bgp_bmp/bgpbmp.py @@ -187,7 +187,7 @@ def bmp_check_for_prefixes( def bmp_check_for_peer_message( - expected_peers, bmp_log_type, bmp_collector, bmp_log_file + expected_peers, bmp_log_type, bmp_collector, bmp_log_file, is_rd_instance=False ): """ Check for the presence of a peer up message for the peer @@ -211,6 +211,8 @@ def bmp_check_for_peer_message( and m["peer_ip"] != "0.0.0.0" and m["bmp_log_type"] == bmp_log_type ): + if is_rd_instance and m["peer_type"] != "route distinguisher instance": + continue peers.append(m["peer_ip"]) elif m["policy"] == "loc-rib" and m["bmp_log_type"] == bmp_log_type: peers.append("0.0.0.0") diff --git a/tests/topotests/bgp_bmp/test_bgp_bmp_2.py b/tests/topotests/bgp_bmp/test_bgp_bmp_2.py index 618d41a6261f..bc648dcfd8f1 100644 --- a/tests/topotests/bgp_bmp/test_bgp_bmp_2.py +++ b/tests/topotests/bgp_bmp/test_bgp_bmp_2.py @@ -210,6 +210,7 @@ def test_peer_up(): "peer up", tgen.gears["bmp1vrf"], os.path.join(tgen.logdir, "bmp1vrf", "bmp.log"), + is_rd_instance=True, ) success, _ = topotest.run_and_expect(test_func, True, count=30, wait=1) assert success, "Checking the updated prefixes has been failed !." @@ -245,6 +246,7 @@ def test_peer_down(): "peer down", tgen.gears["bmp1vrf"], os.path.join(tgen.logdir, "bmp1vrf", "bmp.log"), + is_rd_instance=True, ) success, _ = topotest.run_and_expect(test_func, True, count=30, wait=1) assert success, "Checking the updated prefixes has been failed !."