X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Flibraries%2Fpython%2FInterfaceUtil.py;fp=resources%2Flibraries%2Fpython%2FInterfaceUtil.py;h=ad76eac4f8fbf383a539fd40ef14f5ac41fa3506;hp=5724af01c06830d831e0a5c3865bae5af2ac46c6;hb=256743b509bec8dec3075d91e384b3e6bb01cf77;hpb=574397e8d5e606ebeff4656d75829c494af418a9 diff --git a/resources/libraries/python/InterfaceUtil.py b/resources/libraries/python/InterfaceUtil.py index 5724af01c0..ad76eac4f8 100644 --- a/resources/libraries/python/InterfaceUtil.py +++ b/resources/libraries/python/InterfaceUtil.py @@ -491,6 +491,27 @@ class InterfaceUtil: return if_data.get(u"l2_address") + @staticmethod + def vpp_set_interface_mac(node, interface, mac): + """Set MAC address for the given interface. + + :param node: VPP node to set interface MAC. + :param interface: Numeric index or name string of a specific interface. + :param mac: Required MAC address. + :type node: dict + :type interface: int or str + :type mac: str + """ + cmd = u"sw_interface_set_mac_address" + args = dict( + sw_if_index=InterfaceUtil.get_interface_index(node, interface), + mac_address=L2Util.mac_to_bin(mac) + ) + err_msg = f"Failed to set MAC address of interface {interface}" \ + f"on host {node[u'host']}" + with PapiSocketExecutor(node) as papi_exec: + papi_exec.add(cmd, **args).get_reply(err_msg) + @staticmethod def tg_set_interface_driver(node, pci_addr, driver): """Set interface driver on the TG node. @@ -1183,6 +1204,9 @@ class InterfaceUtil: with PapiSocketExecutor(node) as papi_exec: sw_if_index = papi_exec.add(cmd, **args).get_sw_if_index(err_msg) + InterfaceUtil.vpp_set_interface_mac( + node, sw_if_index, Topology.get_interface_mac(node, if_key) + ) InterfaceUtil.add_eth_interface( node, sw_if_index=sw_if_index, ifc_pfx=u"eth_rdma", host_if_key=if_key