From 6212c5a82fa1d2f179366acfc80fc7a255d100f5 Mon Sep 17 00:00:00 2001 From: Pim van Pelt Date: Sun, 7 Apr 2024 15:26:55 +0200 Subject: [PATCH] unnumbered: add dumper() --- vppcfg/vpp/dumper.py | 10 ++++++++++ vppcfg/vpp/vppapi.py | 6 ++++++ 2 files changed, 16 insertions(+) diff --git a/vppcfg/vpp/dumper.py b/vppcfg/vpp/dumper.py index eea525c..7463f3a 100644 --- a/vppcfg/vpp/dumper.py +++ b/vppcfg/vpp/dumper.py @@ -102,6 +102,11 @@ class Dumper(VPPApi): loop["mac"] = str(iface.l2_address) if iface.sw_if_index in self.cache["lcps"]: loop["lcp"] = self.cache["lcps"][iface.sw_if_index].host_if_name + if iface.sw_if_index in self.cache["interface_unnumbered"]: + target = self.cache["interface_unnumbered"][iface.sw_if_index] + loop["unnumbered"] = self.cache["interfaces"][ + target + ].interface_name if iface.sw_if_index in self.cache["interface_addresses"]: if ( len(self.cache["interface_addresses"][iface.sw_if_index]) @@ -123,6 +128,11 @@ class Dumper(VPPApi): i = {"description": ""} if iface.sw_if_index in self.cache["lcps"]: i["lcp"] = self.cache["lcps"][iface.sw_if_index].host_if_name + if iface.sw_if_index in self.cache["interface_unnumbered"]: + target = self.cache["interface_unnumbered"][iface.sw_if_index] + i["unnumbered"] = self.cache["interfaces"][ + target + ].interface_name if iface.sw_if_index in self.cache["interface_addresses"]: if ( len(self.cache["interface_addresses"][iface.sw_if_index]) diff --git a/vppcfg/vpp/vppapi.py b/vppcfg/vpp/vppapi.py index 85c9b02..cbddbad 100644 --- a/vppcfg/vpp/vppapi.py +++ b/vppcfg/vpp/vppapi.py @@ -119,6 +119,7 @@ class VPPApi: "interface_names": {}, "interfaces": {}, "interface_addresses": {}, + "interface_unnumbered": {}, "interface_mpls": {}, "interface_acls": {}, "bondethernets": {}, @@ -374,6 +375,11 @@ class VPPApi: except AttributeError as err: self.logger.warning(f"ACL API not found - missing plugin: {err}") + self.logger.debug("Retrieving interface Unnumbered state") + api_response = self.vpp.api.ip_unnumbered_dump() + for iface in api_response: + self.cache["interface_unnumbered"][iface.sw_if_index] = iface.ip_sw_if_index + self.logger.debug("Retrieving bondethernets") api_response = self.vpp.api.sw_bond_interface_dump() for iface in api_response: