diff --git a/modules/bgp.py b/modules/bgp.py index f270a47..ebd4ca4 100644 --- a/modules/bgp.py +++ b/modules/bgp.py @@ -85,4 +85,22 @@ def generate_bgp_json(ipv4_info, ipv4_peers, ipv6_info, ipv6_peers, bfd_peers=No "ipv6_info": ipv6_info, "ipv6_peers": ipv6_peers, "bfd_peers": list(bfd_peers) - } \ No newline at end of file + } + +def parse_route_summary(raw_data): + summary = {"routes": 0, "fib": 0} + try: + if "data" in raw_data and raw_data["data"]: + lines = raw_data["data"].split('\n') + for line in lines: + if line.strip().lower().startswith('totals'): + parts = line.split() + if len(parts) >= 2 and parts[1].isdigit(): + summary["routes"] = int(parts[1]) + if len(parts) >= 3 and parts[2].isdigit(): + summary["fib"] = int(parts[2]) + break + except Exception as e: + print(f"[WARN] Error parsing route summary: {e}") + return {"routes": 0, "fib": 0} + return summary \ No newline at end of file