X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=resources%2Flibraries%2Fpython%2FDPDK%2FTestpmdTest.py;h=3baba307154ce14bb4a77b47146e8d5b0c657e66;hb=HEAD;hp=091110f129b69febc6aff3e7a3b8dfa40e473a77;hpb=1cd46e5b0125f405af0aa6c9aa715f543428f1d7;p=csit.git diff --git a/resources/libraries/python/DPDK/TestpmdTest.py b/resources/libraries/python/DPDK/TestpmdTest.py index 091110f129..c141851bdc 100644 --- a/resources/libraries/python/DPDK/TestpmdTest.py +++ b/resources/libraries/python/DPDK/TestpmdTest.py @@ -1,4 +1,4 @@ -# Copyright (c) 2022 Cisco and/or its affiliates. +# Copyright (c) 2024 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -27,10 +27,10 @@ class TestpmdTest: """ This class start testpmd on topology nodes and check if properly started. """ - + @staticmethod def start_testpmd_on_all_duts( - nodes, topology_info, phy_cores, rx_queues=None, jumbo_frames=False, + nodes, topology_info, phy_cores, rx_queues=None, jumbo=False, rxd=None, txd=None, nic_rxq_size=None, nic_txq_size=None): """ Start the testpmd with M worker threads and rxqueues N and jumbo @@ -40,7 +40,7 @@ class TestpmdTest: :param topology_info: All the info from the topology file. :param phy_cores: Number of physical cores to use. :param rx_queues: Number of RX queues. - :param jumbo_frames: Jumbo frames on/off. + :param jumbo: Jumbo frames on/off. :param rxd: Number of RX descriptors. :param txd: Number of TX descriptors. :param nic_rxq_size: RX queue size. @@ -50,7 +50,7 @@ class TestpmdTest: :type topology_info: dict :type phy_cores: int :type rx_queues: int - :type jumbo_frames: bool + :type jumbo: bool :type rxd: int :type txd: int :type nic_rxq_size: int @@ -60,12 +60,11 @@ class TestpmdTest: cpu_count_int = dp_count_int = int(phy_cores) dp_cores = cpu_count_int+1 - for node in nodes: - if u"DUT" in node: - compute_resource_info = CpuUtils.get_affinity_vswitch( - nodes, node, phy_cores, rx_queues=rx_queues, - rxd=rxd, txd=txd - ) + compute_resource_info = CpuUtils.get_affinity_vswitch( + nodes, phy_cores, rx_queues=rx_queues, rxd=rxd, txd=txd + ) + for node_name, node in nodes.items(): + if node["type"] == NodeType.DUT: if dp_count_int > 1: BuiltIn().set_tags('MTHREAD') else: @@ -74,20 +73,25 @@ class TestpmdTest: f"{dp_count_int}T{cpu_count_int}C" ) - cpu_dp = compute_resource_info[u"cpu_dp"] - rxq_count_int = compute_resource_info[u"rxq_count_int"] - if1 = topology_info[f"{node}_pf1"][0] - if2 = topology_info[f"{node}_pf2"][0] + cpu_dp = compute_resource_info[f"{node_name}_cpu_dp"] + rxq_count_int = compute_resource_info["rxq_count_int"] + if1 = topology_info[f"{node_name}_pf1"][0] + if2 = topology_info[f"{node_name}_pf2"][0] TestpmdTest.start_testpmd( - nodes[node], if1=if1, if2=if2, lcores_list=cpu_dp, + node, if1=if1, if2=if2, lcores_list=cpu_dp, nb_cores=dp_count_int, queue_nums=rxq_count_int, - jumbo_frames=jumbo_frames, rxq_size=nic_rxq_size, + jumbo=jumbo, rxq_size=nic_rxq_size, txq_size=nic_txq_size ) for node in nodes: if u"DUT" in node: for i in range(3): try: + nic_model = nodes[node]["interfaces"][if1]["model"] + if "Mellanox-CX7VEAT" in nic_model: + break + if "Mellanox-CX6DX" in nic_model: + break TestpmdTest.check_testpmd(nodes[node]) break except RuntimeError: @@ -95,7 +99,7 @@ class TestpmdTest: nodes[node], if1=if1, if2=if2, lcores_list=cpu_dp, nb_cores=dp_count_int, queue_nums=rxq_count_int, - jumbo_frames=jumbo_frames, + jumbo=jumbo, rxq_size=nic_rxq_size, txq_size=nic_txq_size ) else: @@ -105,7 +109,7 @@ class TestpmdTest: @staticmethod def start_testpmd( node, if1, if2, lcores_list, nb_cores, queue_nums, - jumbo_frames, rxq_size=1024, txq_size=1024): + jumbo, rxq_size=1024, txq_size=1024): """ Execute the testpmd on the DUT node. @@ -115,7 +119,7 @@ class TestpmdTest: :param lcores_list: The DPDK run cores. :param nb_cores: The cores number for the forwarding. :param queue_nums: The queues number for the NIC. - :param jumbo_frames: Indication if the jumbo frames are used (True) or + :param jumbo: Indication if the jumbo frames are used (True) or not (False). :param rxq_size: RXQ size. Default=1024. :param txq_size: TXQ size. Default=1024. @@ -125,7 +129,7 @@ class TestpmdTest: :type lcores_list: str :type nb_cores: int :type queue_nums: str - :type jumbo_frames: bool + :type jumbo: bool :type rxq_size: int :type txq_size: int :raises RuntimeError: If the script "run_testpmd.sh" fails. @@ -134,7 +138,7 @@ class TestpmdTest: if_pci0 = Topology.get_interface_pci_addr(node, if1) if_pci1 = Topology.get_interface_pci_addr(node, if2) - pmd_max_pkt_len = u"9200" if jumbo_frames else u"1518" + pmd_max_pkt_len = u"9200" if jumbo else u"1518" testpmd_args = DpdkUtil.get_testpmd_args( eal_corelist=f"1,{lcores_list}", eal_driver=False,