-# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2025 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:
for node_name, node in nodes.items():
if node["type"] == NodeType.DUT:
if dp_count_int > 1:
- BuiltIn().set_tags('MTHREAD')
+ BuiltIn().set_tags("MTHREAD")
else:
- BuiltIn().set_tags('STHREAD')
+ BuiltIn().set_tags("STHREAD")
BuiltIn().set_tags(
f"{dp_count_int}T{cpu_count_int}C"
)
cpu_dp = compute_resource_info[f"{node_name}_cpu_dp"]
+ cpu_dp = [f"{i+1}@{x}" for i,x in enumerate(cpu_dp.split(","))]
+ cpu_dp = ",".join(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]
jumbo=jumbo, tg_flip=tg_flip
)
for node in nodes:
- if u"DUT" in node:
+ if "DUT" in node:
for i in range(3):
try:
L3fwdTest.check_l3fwd(nodes[node])
:type jumbo: bool
:type tg_flip: bool
"""
- if node[u"type"] == NodeType.DUT:
+ if node["type"] == NodeType.DUT:
adj_mac0, adj_mac1, if_pci0, if_pci1 = L3fwdTest.get_adj_mac(
nodes, node, if1, if2, tg_flip
)
- lcores = [int(item) for item in lcores_list.split(u",")]
+ lcores = [int(item.split("@")[0]) for item in lcores_list.split(",")]
# prepare the port config param
nb_cores = int(nb_cores)
index = 0
- port_config = ''
+ port_config = ""
for port in range(0, NB_PORTS):
for queue in range(0, int(queue_nums)):
index = 0 if nb_cores == 1 else index
port_config += \
- f"({port}, {queue}, {lcores[index % NB_PORTS]}),"
+ f"({port}, {queue}, {lcores[index % queue_nums]}),"
index += 1
if jumbo:
l3fwd_args = DpdkUtil.get_l3fwd_args(
- eal_corelist=f"1,{lcores_list}",
+ eal_coremap=f"0@1,{lcores_list}",
eal_driver=False,
eal_pci_whitelist0=if_pci0,
eal_pci_whitelist1=if_pci1,
eal_in_memory=True,
- pmd_config=f"\\\"{port_config.rstrip(u',')}\\\"",
+ pmd_config=f"\\\"{port_config.rstrip(',')}\\\"",
pmd_eth_dest_0=f"\\\"0,{adj_mac0}\\\"",
pmd_eth_dest_1=f"\\\"1,{adj_mac1}\\\"",
pmd_parse_ptype=True,
)
else:
l3fwd_args = DpdkUtil.get_l3fwd_args(
- eal_corelist=f"1,{lcores_list}",
+ eal_coremap=f"0@1,{lcores_list}",
eal_driver=False,
eal_pci_whitelist0=if_pci0,
eal_pci_whitelist1=if_pci1,
if dut_flip:
if_key0, if_key1 = if_key1, if_key0
if tg_flip:
- L3fwdTest.patch_l3fwd(node, u"patch_l3fwd_flip_routes")
+ L3fwdTest.patch_l3fwd(node, "patch_l3fwd_flip_routes")
elif not tg_flip:
- L3fwdTest.patch_l3fwd(node, u"patch_l3fwd_flip_routes")
+ L3fwdTest.patch_l3fwd(node, "patch_l3fwd_flip_routes")
adj_node0, adj_if_key0 = Topology.get_adjacent_node_and_interface(
nodes, node, if_key0
f"/entry/{patch}"
message = f"Failed to patch l3fwd at node {node['host']}"
ret_code, stdout, _ = exec_cmd(node, command, timeout=1800)
- if ret_code != 0 and u"Skipping patch." not in stdout:
+ if ret_code != 0 and "Skipping patch." not in stdout:
raise RuntimeError(message)
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2025 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:
:returns: EAL parameters.
:rtype: OptionString
"""
- options = OptionString(prefix=u"-")
- options.add(u"v")
+ options = OptionString(prefix="-")
+ options.add("v")
# Set the hexadecimal bitmask of the cores to run on.
options.add_with_value_from_dict(
- u"l", u"eal_corelist", kwargs
+ "-lcores", "eal_coremap", kwargs
)
# Add a PCI device in white list.
options.add_with_value_from_dict(
- u"a", u"eal_pci_whitelist0", kwargs
+ "a", "eal_pci_whitelist0", kwargs
)
options.add_with_value_from_dict(
- u"a", u"eal_pci_whitelist1", kwargs
+ "a", "eal_pci_whitelist1", kwargs
)
# Load an external driver. Multiple -d options are allowed.
options.add_with_value_if_from_dict(
- u"d", u"/usr/lib/librte_pmd_virtio.so", u"eal_driver", kwargs, True
+ "d", "/usr/lib/librte_pmd_virtio.so", "eal_driver", kwargs, True
)
options.add_if_from_dict(
- u"-in-memory", u"eal_in_memory", kwargs, False
+ "-in-memory", "eal_in_memory", kwargs, False
)
return options
:returns: PMD parameters.
:rtype: OptionString
"""
- options = OptionString(prefix=u"--")
+ options = OptionString(prefix="--")
# Set the forwarding mode: io, mac, mac_retry, mac_swap, flowgen,
# rxonly, txonly, csum, icmpecho, ieee1588
options.add_equals_from_dict(
- u"forward-mode", u"pmd_fwd_mode", kwargs, u"io"
+ "forward-mode", "pmd_fwd_mode", kwargs, "io"
)
# Set the number of packets per burst to N.
options.add_equals(
- u"burst", 64
+ "burst", 64
)
# Set the number of descriptors in the TX rings to N.
options.add_equals_from_dict(
- u"txd", u"pmd_txd", kwargs, 1024
+ "txd", "pmd_txd", kwargs, 1024
)
# Set the number of descriptors in the RX rings to N.
options.add_equals_from_dict(
- u"rxd", u"pmd_rxd", kwargs, 1024
+ "rxd", "pmd_rxd", kwargs, 1024
)
# Set the number of queues in the TX to N.
options.add_equals_from_dict(
- u"txq", u"pmd_txq", kwargs, 1
+ "txq", "pmd_txq", kwargs, 1
)
# Set the number of queues in the RX to N.
options.add_equals_from_dict(
- u"rxq", u"pmd_rxq", kwargs, 1
+ "rxq", "pmd_rxq", kwargs, 1
)
# Set the hexadecimal bitmask of offloads.
options.add_equals_from_dict(
- u"tx-offloads", u"pmd_tx_offloads", kwargs, u"0x0"
+ "tx-offloads", "pmd_tx_offloads", kwargs, "0x0"
)
# Enables numa aware allocation of mbufs.
options.add_if_from_dict(
- u"numa", u"pmd_numa", kwargs, True
+ "numa", "pmd_numa", kwargs, True
)
# Run by default.
options.add_if_from_dict(
- u"auto-start", u"pmd_auto_start", kwargs, True
+ "auto-start", "pmd_auto_start", kwargs, True
)
# Set the number of mbufs to be allocated in the mbuf pools.
options.add_equals_from_dict(
- u"total-num-mbufs", u"pmd_num_mbufs", kwargs
+ "total-num-mbufs", "pmd_num_mbufs", kwargs
)
# Set the number of forwarding ports.
options.add_equals_from_dict(
- u"nb-ports", u"pmd_nb_ports", kwargs
+ "nb-ports", "pmd_nb_ports", kwargs
)
# Set the hexadecimal bitmask of the ports used by the packet
# forwarding test.
options.add_equals_from_dict(
- u"portmask", u"pmd_portmask", kwargs
+ "portmask", "pmd_portmask", kwargs
)
# Disable link status check.
options.add_if_from_dict(
- u"disable-link-check", u"pmd_disable_link_check", kwargs, True
+ "disable-link-check", "pmd_disable_link_check", kwargs, True
)
# Set the MAC address XX:XX:XX:XX:XX:XX of the peer port N
options.add_equals_from_dict(
- u"eth-peer", u"pmd_eth_peer_0", kwargs
+ "eth-peer", "pmd_eth_peer_0", kwargs
)
options.add_equals_from_dict(
- u"eth-peer", u"pmd_eth_peer_1", kwargs
+ "eth-peer", "pmd_eth_peer_1", kwargs
)
# Set the max packet length.
options.add_equals_from_dict(
- u"max-pkt-len", u"pmd_max_pkt_len", kwargs
+ "max-pkt-len", "pmd_max_pkt_len", kwargs
)
# Set the mbuf size.
options.add_equals_from_dict(
- u"mbuf-size", u"pmd_mbuf_size", kwargs
+ "mbuf-size", "pmd_mbuf_size", kwargs
)
# Set the number of forwarding cores based on coremask.
options.add_equals_from_dict(
- u"nb-cores", u"pmd_nb_cores", kwargs
+ "nb-cores", "pmd_nb_cores", kwargs
)
return options
"""
options = OptionString()
options.extend(DpdkUtil.get_eal_options(**kwargs))
- options.add(u"--")
+ options.add("--")
options.extend(DpdkUtil.get_testpmd_pmd_options(**kwargs))
return options
:rtype: OptionString
"""
options = OptionString()
- options.add(u"dpdk-testpmd")
+ options.add("dpdk-testpmd")
options.extend(DpdkUtil.get_eal_options(**kwargs))
- options.add(u"--")
+ options.add("--")
options.extend(DpdkUtil.get_testpmd_pmd_options(**kwargs))
return options
:type kwargs: dict
"""
cmd_options = OptionString()
- cmd_options.add(u"/start-testpmd.sh")
+ cmd_options.add("/start-testpmd.sh")
cmd_options.extend(DpdkUtil.get_eal_options(**kwargs))
- cmd_options.add(u"--")
+ cmd_options.add("--")
cmd_options.extend(DpdkUtil.get_testpmd_pmd_options(**kwargs))
exec_cmd_no_error(node, cmd_options, sudo=True, disconnect=True)
:type node: dict
:returns: nothing
"""
- cmd = u"/stop-testpmd.sh" # Completed string, simple one.
+ cmd = "/stop-testpmd.sh" # Completed string, simple one.
exec_cmd_no_error(node, cmd, sudo=True, disconnect=True)
@staticmethod
:returns: PMD parameters.
:rtype: OptionString
"""
- options = OptionString(prefix=u"--")
+ options = OptionString(prefix="--")
# Set to use software to analyze packet type.
options.add_if_from_dict(
- u"parse-ptype", u"pmd_parse_ptype", kwargs, True
+ "parse-ptype", "pmd_parse_ptype", kwargs, True
)
# Set the MAC address XX:XX:XX:XX:XX:XX of the peer port N.
options.add_equals_from_dict(
- u"eth-dest", u"pmd_eth_dest_0", kwargs
+ "eth-dest", "pmd_eth_dest_0", kwargs
)
options.add_equals_from_dict(
- u"eth-dest", u"pmd_eth_dest_1", kwargs
+ "eth-dest", "pmd_eth_dest_1", kwargs
)
# Determines which queues from which ports are mapped to which cores.
options.add_equals_from_dict(
- u"config", u"pmd_config", kwargs
+ "config", "pmd_config", kwargs
)
# Set the max packet length.
options.add_with_value_if_from_dict(
- u"max-pkt-len", u"9200", u"pmd_max_pkt_len", kwargs, False
+ "max-pkt-len", "9200", "pmd_max_pkt_len", kwargs, False
)
return options
"""
options = OptionString()
options.extend(DpdkUtil.get_eal_options(**kwargs))
- options.add(u"--")
+ options.add("--")
options.extend(DpdkUtil.get_l3fwd_pmd_options(**kwargs))
return options