- adj_mac0, adj_mac1 = L3fwdTest.get_adj_mac(nodes_info, dut_node,
- dut_if1, dut_if2)
-
- list_cores = lcores_list.split(',')
-
- # prepare the port config param
- index = 0
- port_config = ''
- for port in range(0, 2):
- for queue in range(0, int(queue_nums)):
- if int(nb_cores) == 1:
- index = 0
- temp_str = '({0}, {1}, {2}),'.format(port, queue, \
- int(list_cores[index]))
- else:
- temp_str = '({0}, {1}, {2}),'.format(port, queue, \
- int(list_cores[index]))
-
- port_config += temp_str
- index = index + 1
-
- ssh = SSH()
- ssh.connect(dut_node)
-
- cmd = 'cd {0}/tests/dpdk/dpdk_scripts/ && ./run_l3fwd.sh ' \
- '"{1}" "{2}" {3} {4} {5}'.format(con.REMOTE_FW_DIR, lcores_list, \
- port_config.rstrip(','), adj_mac0, adj_mac1, jumbo_frames)
-
- (ret_code, _, _) = ssh.exec_command(cmd, timeout=600)
- if ret_code != 0:
- raise Exception('Failed to execute l3fwd test at node {0}'
- .format(dut_node['host']))
+ if node[u"type"] == NodeType.DUT:
+ adj_mac0, adj_mac1, if_pci0, if_pci1 = L3fwdTest.get_adj_mac(
+ nodes, node, if1, if2
+ )
+
+ lcores = [int(item) for item in lcores_list.split(u",")]
+
+ # prepare the port config param
+ nb_cores = int(nb_cores)
+ index = 0
+ 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]}),"
+ index += 1
+
+ if jumbo_frames:
+ l3fwd_args = DpdkUtil.get_l3fwd_args(
+ eal_corelist=f"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_eth_dest_0=f"\\\"0,{adj_mac0}\\\"",
+ pmd_eth_dest_1=f"\\\"1,{adj_mac1}\\\"",
+ pmd_parse_ptype=True,
+ pmd_max_pkt_len=jumbo_frames
+ )
+ else:
+ l3fwd_args = DpdkUtil.get_l3fwd_args(
+ eal_corelist=f"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_eth_dest_0=f"\\\"0,{adj_mac0}\\\"",
+ pmd_eth_dest_1=f"\\\"1,{adj_mac1}\\\"",
+ pmd_parse_ptype=True
+ )
+
+ command = f"{Constants.REMOTE_FW_DIR}/{Constants.RESOURCES_LIB_SH}"\
+ f"/entry/run_l3fwd.sh \"{l3fwd_args} -P -L -p 0x3\""
+ message = f"Failed to execute l3fwd test at node {node['host']}"
+ exec_cmd_no_error(node, command, timeout=1800, message=message)
+