.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)
+ "vxlan_dump.vat", param=param, sw_if_index=sw_if_index)
- for vxlan in response[0]:
- if vxlan["sw_if_index"] == sw_if_index:
- return vxlan
- return {}
+ 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,
else:
raise RuntimeError('Create loopback failed on node "{}"'
.format(node['host']))
+
+ @staticmethod
+ def vpp_enable_input_acl_interface(node, interface, ip_version,
+ table_index):
+ """Enable input acl on interface.
+
+ :param node: VPP node to setup interface for input acl.
+ :param interface: Interface to setup input acl.
+ :param ip_version: Version of IP protocol.
+ :param table_index: Classify table index.
+ :type node: dict
+ :type interface: str or int
+ :type ip_version: str
+ :type table_index: int
+ """
+ if isinstance(interface, basestring):
+ sw_if_index = Topology.get_interface_sw_index(node, interface)
+ else:
+ sw_if_index = interface
+
+ with VatTerminal(node) as vat:
+ vat.vat_terminal_exec_cmd_from_template("input_acl_int.vat",
+ sw_if_index=sw_if_index,
+ ip_version=ip_version,
+ table_index=table_index)