def cleanup_dpdk_environment(dut_node, dut_if1, dut_if2): """ Cleanup the DPDK test environment on the DUT node. Unbind the NIC from the igb_uio and bind them to the kernel driver. :param dut_node: Will cleanup the DPDK on this node. :param dut_if1: DUT interface name. :param dut_if2: DUT interface name. :type dut_node: dict :type dut_if1: str :type dut_if2: str :returns: none :raises RuntimeError: If it fails to cleanup the dpdk. """ pci_address1 = Topology.get_interface_pci_addr(dut_node, dut_if1) if1_driver = Topology.get_interface_driver(dut_node, dut_if1) pci_address2 = Topology.get_interface_pci_addr(dut_node, dut_if2) if2_driver = Topology.get_interface_driver(dut_node, dut_if2) ssh = SSH() ssh.connect(dut_node) cmd = 'cd {0}/tests/dpdk/dpdk_scripts/ && sudo ./cleanup_dpdk.sh ' \ '{1} {2} {3} {4}'.format(con.REMOTE_FW_DIR, if1_driver, pci_address1, if2_driver, pci_address2) (ret_code, _, _) = ssh.exec_command(cmd, timeout=600) if ret_code != 0: raise RuntimeError('Failed to cleanup the dpdk at node {0}'.format( dut_node['host']))
def cleanup_dpdk_environment(dut_node, dut_if1, dut_if2): """ Cleanup the DPDK test environment on the DUT node. Unbind the NIC from the igb_uio and bind them to the kernel driver. :param dut_node: Will cleanup the DPDK on this node. :param dut_if1: DUT interface name. :param dut_if2: DUT interface name. :type dut_node: dict :type dut_if1: str :type dut_if2: str :raises RuntimeError: If it fails to cleanup the dpdk. """ if dut_node['type'] == NodeType.DUT: pci_address1 = Topology.get_interface_pci_addr(dut_node, dut_if1) if1_driver = Topology.get_interface_driver(dut_node, dut_if1) pci_address2 = Topology.get_interface_pci_addr(dut_node, dut_if2) if2_driver = Topology.get_interface_driver(dut_node, dut_if2) ssh = SSH() ssh.connect(dut_node) cmd = '{fwdir}/tests/dpdk/dpdk_scripts/cleanup_dpdk.sh ' \ '{drv1} {pci1} {drv2} {pci2}'.\ format(fwdir=Constants.REMOTE_FW_DIR, drv1=if1_driver, pci1=pci_address1, drv2=if2_driver, pci2=pci_address2) ret_code, _, _ = ssh.exec_command_sudo(cmd, timeout=600) if ret_code != 0: raise RuntimeError( 'Failed to cleanup the dpdk at node {name}'.format( name=dut_node['host']))
def cleanup_dpdk_framework(node, if1, if2): """ Cleanup the DPDK framework on the DUT node. Bind interfaces to default driver specified in topology. :param node: Will cleanup the DPDK on this node. :param if1: DUT first interface name. :param if2: DUT second interface name. :type node: dict :type if1: str :type if2: str :raises RuntimeError: If it fails to cleanup the dpdk. """ if node[u"type"] == NodeType.DUT: pci_address1 = Topology.get_interface_pci_addr(node, if1) pci_address2 = Topology.get_interface_pci_addr(node, if2) # We are not supporting more than one driver yet. nic_driver = Topology.get_interface_driver(node, if1) command = f"{Constants.REMOTE_FW_DIR}/{Constants.RESOURCES_LIB_SH}"\ f"/entry/cleanup_dpdk.sh " \ f"{nic_driver} {pci_address1} {pci_address2}" message = u"Cleanup the DPDK failed!" exec_cmd_no_error(node, command, timeout=1200, message=message)