Example #1
0
    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']))
Example #2
0
    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']))
Example #3
0
    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)