X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=resources%2Flibraries%2Fpython%2FDPDK%2FL3fwdTest.py;h=1c6e618c0195d9e0427ac3be29026aa1745cf90c;hb=b6606e7625e308a66bdfb9d5a9c065b58e429a99;hp=c2b3da184fea2bbf919ddc96bdc82b11dede4b45;hpb=16ef90a2415aa3b65341fdb6517cf58721bfff7a;p=csit.git diff --git a/resources/libraries/python/DPDK/L3fwdTest.py b/resources/libraries/python/DPDK/L3fwdTest.py index c2b3da184f..1c6e618c01 100644 --- a/resources/libraries/python/DPDK/L3fwdTest.py +++ b/resources/libraries/python/DPDK/L3fwdTest.py @@ -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)