+ :type jumbo_frames: bool
+ """
+ if dut_node[u"type"] == NodeType.DUT:
+ adj_mac0, adj_mac1 = L3fwdTest.get_adj_mac(
+ nodes_info, dut_node, dut_if1, dut_if2
+ )
+
+ list_cores = [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, 2):
+ for queue in range(0, int(queue_nums)):
+ index = 0 if nb_cores == 1 else index
+ port_config += f"({port}, {queue}, {list_cores[index]}),"
+ index += 1
+
+ ssh = SSH()
+ ssh.connect(dut_node)
+
+ cmd = f"{Constants.REMOTE_FW_DIR}/tests/dpdk/dpdk_scripts" \
+ f"/run_l3fwd.sh \"{lcores_list}\" " \
+ f"\"{port_config.rstrip(u',')}\" " \
+ f"{adj_mac0} {adj_mac1} {u'yes' if jumbo_frames else u'no'}"
+
+ ret_code, _, _ = ssh.exec_command_sudo(cmd, timeout=600)
+ if ret_code != 0:
+ raise Exception(
+ f"Failed to execute l3fwd test at node {dut_node[u'host']}"
+ )
+
+ @staticmethod
+ def get_adj_mac(nodes_info, dut_node, dut_if1, dut_if2):