return dict()
return data
+ @staticmethod
+ def vpp_get_interface_mac(node, interface=None):
+ """Get MAC address for the given interface from actual interface dump.
+
+ :param node: VPP node to get interface data from.
+ :param interface: Numeric index or name string of a specific interface.
+ :type node: dict
+ :type interface: int or str
+ :return: MAC address.
+ :rtype: str
+ """
+
+ if_data = InterfaceUtil.vpp_get_interface_data(node, interface)
+ mac_data = [str(hex(item))[2:] for item in if_data['l2_address'][:6]]
+ mac_data_nice = []
+ for item in mac_data:
+ if len(item) == 1:
+ item = '0' + item
+ mac_data_nice.append(item)
+ mac = ":".join(mac_data_nice)
+ return mac
+
@staticmethod
def vpp_get_interface_ip_addresses(node, interface, ip_version):
"""Get list of IP addresses from an interface on a VPP node.
interface_name=interface)
@staticmethod
- def assign_interface_to_fib_table(node, interface, table_id):
+ def assign_interface_to_fib_table(node, interface, table_id, ipv6=False):
"""Assign VPP interface to specific VRF/FIB table.
:param node: VPP node where the FIB and interface are located.
:param interface: Interface to be assigned to FIB.
:param table_id: VRF table ID.
+ :param ipv6: Assign to IPv6 table. Default False.
:type node: dict
:type interface: str or int
:type table_id: int
+ :type ipv6: bool
"""
if isinstance(interface, basestring):
sw_if_index = Topology.get_interface_sw_index(node, interface)
else:
sw_if_index = interface
+ ipv6 = 'ipv6' if ipv6 else ''
+
with VatTerminal(node) as vat:
vat.vat_terminal_exec_cmd_from_template("set_fib_to_interface.vat",
sw_index=sw_if_index,
- vrf=table_id)
+ vrf=table_id,
+ ipv6=ipv6)
@staticmethod
def set_linux_interface_mac(node, interface, mac, namespace=None):