fix(dpdk): Jumbo
[csit.git] / resources / libraries / python / DPDK / L3fwdTest.py
index c2b3da1..1c6e618 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 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:
@@ -17,10 +17,12 @@ This module exists to provide the l3fwd test for DPDK on topology nodes.
 
 from resources.libraries.python.Constants import Constants
 from resources.libraries.python.DpdkUtil import DpdkUtil
-from resources.libraries.python.ssh import exec_cmd_no_error
+from resources.libraries.python.ssh import exec_cmd_no_error, exec_cmd
 from resources.libraries.python.topology import NodeType, Topology
 
 
+NB_PORTS = 2
+
 class L3fwdTest:
     """Test the DPDK l3fwd performance."""
 
@@ -54,21 +56,22 @@ class L3fwdTest:
                 nodes, node, if1, if2
             )
 
-            list_cores = [int(item) for item in lcores_list.split(u",")]
+            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, 2):
+            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}, {list_cores[index]}),"
+                    port_config += \
+                        f"({port}, {queue}, {lcores[index % NB_PORTS]}),"
                     index += 1
 
             if jumbo_frames:
                 l3fwd_args = DpdkUtil.get_l3fwd_args(
-                    eal_corelist=f"0,{lcores_list}",
+                    eal_corelist=f"1,{lcores_list}",
                     eal_driver=False,
                     eal_pci_whitelist0=if_pci0,
                     eal_pci_whitelist1=if_pci1,
@@ -77,12 +80,11 @@ class L3fwdTest:
                     pmd_eth_dest_0=f"\\\"0,{adj_mac0}\\\"",
                     pmd_eth_dest_1=f"\\\"1,{adj_mac1}\\\"",
                     pmd_parse_ptype=True,
-                    pmd_enable_jumbo=jumbo_frames,
                     pmd_max_pkt_len=jumbo_frames
                 )
             else:
                 l3fwd_args = DpdkUtil.get_l3fwd_args(
-                    eal_corelist=f"0,{lcores_list}",
+                    eal_corelist=f"1,{lcores_list}",
                     eal_driver=False,
                     eal_pci_whitelist0=if_pci0,
                     eal_pci_whitelist1=if_pci1,
@@ -155,4 +157,6 @@ class L3fwdTest:
             f"{Constants.REMOTE_FW_DIR}/{Constants.RESOURCES_LIB_SH}"\
             f"/entry/{patch}"
         message = f"Failed to patch l3fwd at node {node['host']}"
-        exec_cmd_no_error(node, command, timeout=1800, message=message)
+        ret_code, stdout, _ = exec_cmd(node, command, timeout=1800)
+        if ret_code != 0 and u"Skipping patch." not in stdout:
+            raise RuntimeError(message)