aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries/python/InterfaceUtil.py
diff options
context:
space:
mode:
Diffstat (limited to 'resources/libraries/python/InterfaceUtil.py')
-rw-r--r--resources/libraries/python/InterfaceUtil.py33
1 files changed, 21 insertions, 12 deletions
diff --git a/resources/libraries/python/InterfaceUtil.py b/resources/libraries/python/InterfaceUtil.py
index 3da0e1a204..6790fb7221 100644
--- a/resources/libraries/python/InterfaceUtil.py
+++ b/resources/libraries/python/InterfaceUtil.py
@@ -494,30 +494,39 @@ class InterfaceUtil(object):
.format(node))
@staticmethod
- def vxlan_dump(node, interface):
+ def vxlan_dump(node, interface=None):
"""Get VxLAN data for the given interface.
:param node: VPP node to get interface data from.
:param interface: Numeric index or name string of a specific interface.
+ If None, information about all VxLAN interfaces is returned.
:type node: dict
:type interface: int or str
- :return: Dictionary containing data for the given VxLAN.
- :rtype dict
+ :return: Dictionary containing data for the given VxLAN interface or if
+ interface=None, the list of dictionaries with all VxLAN interfaces.
+ :rtype dict or list
"""
-
- if isinstance(interface, basestring):
+ param = "sw_if_index"
+ if interface is None:
+ param = ''
+ sw_if_index = ''
+ elif isinstance(interface, basestring):
sw_if_index = Topology.get_interface_sw_index(node, interface)
- else:
+ elif isinstance(interface, int):
sw_if_index = interface
+ else:
+ raise Exception("Wrong interface format {0}".format(interface))
with VatTerminal(node) as vat:
response = vat.vat_terminal_exec_cmd_from_template(
- "vxlan_dump.vat", sw_if_index=sw_if_index)
-
- for vxlan in response[0]:
- if vxlan["sw_if_index"] == sw_if_index:
- return vxlan
- return {}
+ "vxlan_dump.vat", param=param, sw_if_index=sw_if_index)
+
+ if sw_if_index:
+ for vxlan in response[0]:
+ if vxlan["sw_if_index"] == sw_if_index:
+ return vxlan
+ return {}
+ return response[0]
@staticmethod
def create_subinterface(node, interface, sub_id, outer_vlan_id,