-# 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:
"""
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
: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.
: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
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:
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:
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:
@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.
: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.
: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.
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,