summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilippe Guibert <philippe.guibert@6wind.com>2024-12-03 08:30:54 +0100
committerPhilippe Guibert <philippe.guibert@6wind.com>2024-12-30 15:13:38 +0100
commit7da91a8fb9dffc151a514de8c96ff175597f942c (patch)
tree71c0f53f4957ccdc5e30fb682fe2c0efeb36bd37
parent69c6a41fd296e6304e8dd50e622bffad55699e76 (diff)
topotests: bmp_collector, fix display peer distinguisher IP:AS2B
The peer distinguisher format was badly displayed when a per peer header is sent with an IP:AS2B format. > {"peer_type": "loc-rib instance", "is_filtered": false, "policy": "loc-rib", > "peer_distinguisher": "None:2", ... The IP header is incorrectly read. Fix it. > {"peer_type": "loc-rib instance", "is_filtered": false, "policy": "loc-rib", > "peer_distinguisher": "3.3.3.5:2", ... Fixes: 875511c46676 ("topotests: add basic bmp collector") Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
-rw-r--r--tests/topotests/lib/bmp_collector/bgp/update/rd.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/tests/topotests/lib/bmp_collector/bgp/update/rd.py b/tests/topotests/lib/bmp_collector/bgp/update/rd.py
index 3f08de5ae9..d44060bf2f 100644
--- a/tests/topotests/lib/bmp_collector/bgp/update/rd.py
+++ b/tests/topotests/lib/bmp_collector/bgp/update/rd.py
@@ -4,6 +4,7 @@
# Authored by Farid Mihoub <farid.mihoub@6wind.com>
#
import ipaddress
+import socket
import struct
@@ -45,9 +46,11 @@ class RouteDistinguisher:
self.repr_str = f"{self.as_number}:{self.assigned_sp}"
elif rd_type == 1:
- (self.admin_ipv4, self.assigned_sp) = struct.unpack_from("!IH", self.rd[2:])
- ipv4 = str(ipaddress.IPv4Address(self.admin_ipv4))
- self.repr_str = f"{self.as_number}:{self.assigned_sp}"
+ (self.admin_ipv4, self.assigned_sp) = struct.unpack_from(
+ "!4sH", self.rd[2:]
+ )
+ ipv4_str = socket.inet_ntoa(self.admin_ipv4)
+ self.repr_str = f"{ipv4_str}:{self.assigned_sp}"
elif rd_type == 2:
(self.four_bytes_as, self.assigned_sp) = struct.unpack_from(