* [dts] [PATCH V4 00/13] vf_l3fwd_kernelpf: add more test scenario @ 2021-03-30 7:05 yufengmx 2021-03-30 7:05 ` [dts] [PATCH V4 01/13] conf/vf_l3fwd_base: add more flows yufengmx ` (13 more replies) 0 siblings, 14 replies; 15+ messages in thread From: yufengmx @ 2021-03-30 7:05 UTC (permalink / raw) To: dts, lijuan.tu; +Cc: yufengmx v4: - change accepted_tolerance to '1%%' and delta to float v3: - fix checkpatch error. v2: - add stage 2 demand. v1: - add more test scenario. yufengmx (13): conf/vf_l3fwd_base: add more flows tests/perf_test_base: extend vf l3fwd content conf/vf_l3fwd_em_kernelpf: configuration tests/vf_l3fwd_em_kernelpf: script conf/vf_l3fwd_kernelpf: configuration tests/vf_l3fwd_kernelpf: add more test scenario conf/vf_l3fwd_lpm_ipv4_kernelpf: configuration tests/vf_l3fwd_lpm_ipv4_kernelpf: script conf/vf_l3fwd_lpm_ipv4_rfc2544_kernelpf: configuration tests/vf_l3fwd_lpm_ipv4_rfc2544_kernelpf: script conf/vf_l3fwd_lpm_ipv6_kernelpf: configuration tests/vf_l3fwd_lpm_ipv6_kernelpf: script tests/perf_test_base: script conf/vf_l3fwd_base.cfg | 93 +++++- conf/vf_l3fwd_em_kernelpf.cfg | 101 ++++++ conf/vf_l3fwd_kernelpf.cfg | 305 +++++++++++++++++- conf/vf_l3fwd_lpm_ipv4_kernelpf.cfg | 59 ++++ conf/vf_l3fwd_lpm_ipv4_rfc2544_kernelpf.cfg | 59 ++++ conf/vf_l3fwd_lpm_ipv6_kernelpf.cfg | 59 ++++ tests/TestSuite_vf_l3fwd_em_kernelpf.py | 89 +++++ tests/TestSuite_vf_l3fwd_kernelpf.py | 40 ++- tests/TestSuite_vf_l3fwd_lpm_ipv4_kernelpf.py | 85 +++++ ...uite_vf_l3fwd_lpm_ipv4_rfc2544_kernelpf.py | 85 +++++ tests/TestSuite_vf_l3fwd_lpm_ipv6_kernelpf.py | 85 +++++ tests/perf_test_base.py | 122 ++++++- 12 files changed, 1152 insertions(+), 30 deletions(-) create mode 100644 conf/vf_l3fwd_em_kernelpf.cfg create mode 100644 conf/vf_l3fwd_lpm_ipv4_kernelpf.cfg create mode 100644 conf/vf_l3fwd_lpm_ipv4_rfc2544_kernelpf.cfg create mode 100644 conf/vf_l3fwd_lpm_ipv6_kernelpf.cfg create mode 100644 tests/TestSuite_vf_l3fwd_em_kernelpf.py create mode 100644 tests/TestSuite_vf_l3fwd_lpm_ipv4_kernelpf.py create mode 100644 tests/TestSuite_vf_l3fwd_lpm_ipv4_rfc2544_kernelpf.py create mode 100644 tests/TestSuite_vf_l3fwd_lpm_ipv6_kernelpf.py -- 2.21.0 ^ permalink raw reply [flat|nested] 15+ messages in thread
* [dts] [PATCH V4 01/13] conf/vf_l3fwd_base: add more flows 2021-03-30 7:05 [dts] [PATCH V4 00/13] vf_l3fwd_kernelpf: add more test scenario yufengmx @ 2021-03-30 7:05 ` yufengmx 2021-03-30 7:05 ` [dts] [PATCH V4 02/13] tests/perf_test_base: extend vf l3fwd content yufengmx ` (12 subsequent siblings) 13 siblings, 0 replies; 15+ messages in thread From: yufengmx @ 2021-03-30 7:05 UTC (permalink / raw) To: dts, lijuan.tu; +Cc: yufengmx add vf_l3fwd_base more flows configuration. Signed-off-by: yufengmx <yufengx.mo@intel.com> --- conf/vf_l3fwd_base.cfg | 93 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 92 insertions(+), 1 deletion(-) diff --git a/conf/vf_l3fwd_base.cfg b/conf/vf_l3fwd_base.cfg index 9d9ede33..8d281144 100644 --- a/conf/vf_l3fwd_base.cfg +++ b/conf/vf_l3fwd_base.cfg @@ -1,6 +1,50 @@ +# stream_type= "tcp"/"udp"/"raw". If not set this key, default is "raw" +# [suite] l3fwd_flows = { "ipv4": { + "em": [ + { + "ipv4": { + "dst": "101.0.0.0", + "src": "100.10.0.1" + }, + "udp": { + "dst": 11, + "src": 101 + } + }, + { + "ipv4": { + "dst": "201.0.0.0", + "src": "200.20.0.1" + }, + "udp": { + "dst": 12, + "src": 102 + } + }, + { + "ipv4": { + "dst": "111.0.0.0", + "src": "100.30.0.1" + }, + "udp": { + "dst": 11, + "src": 101 + } + }, + { + "ipv4": { + "dst": "211.0.0.0", + "src": "200.40.0.1" + }, + "udp": { + "dst": 11, + "src": 102 + } + } + ], "lpm": [ "198.18.0.0/24", "198.18.1.0/24", @@ -11,4 +55,51 @@ l3fwd_flows = { "198.18.6.0/24", "198.18.7.0/24" ] - }, } \ No newline at end of file + }, + "ipv6": { + "em": [ + { + "ipv6": { + "dst": "fe80:0000:0000:0000:021e:67ff:fe00:0000", + "src": "fe80:0000:0000:0000:021b:21ff:fe91:3805" + }, + "udp": { + "dst": 101, + "src": 11 } + }, + { + "ipv6": { + "dst": "fe90:0000:0000:0000:021e:67ff:fe00:0000", + "src": "fe90:0000:0000:0000:021b:21ff:fe91:3805" }, + "udp": { + "dst": 102, + "src": 12 } + }, + { + "ipv6": { + "dst": "fea0:0000:0000:0000:021e:67ff:fe00:0000", + "src": "fea0:0000:0000:0000:021b:21ff:fe91:3805" }, + "udp": { + "dst": 101, + "src": 11 } + }, + { + "ipv6": { + "dst": "feb0:0000:0000:0000:021e:67ff:fe00:0000", + "src": "feb0:0000:0000:0000:021b:21ff:fe91:3805" }, + "udp": { + "dst": 102, + "src": 12 } + } + ], + "lpm": [ + "3201:20:00:00:00:00:00:00/48", + "3201:20:00:00:01:00:00:00/48", + "3201:20:00:00:02:00:00:00/48", + "3201:20:00:00:03:00:00:00/48", + "3201:20:00:00:04:00:00:00/48", + "3201:20:00:00:05:00:00:00/48", + "3201:20:00:00:06:00:00:00/48", + "3201:20:00:00:07:00:00:00/48" + ] + } } -- 2.21.0 ^ permalink raw reply [flat|nested] 15+ messages in thread
* [dts] [PATCH V4 02/13] tests/perf_test_base: extend vf l3fwd content 2021-03-30 7:05 [dts] [PATCH V4 00/13] vf_l3fwd_kernelpf: add more test scenario yufengmx 2021-03-30 7:05 ` [dts] [PATCH V4 01/13] conf/vf_l3fwd_base: add more flows yufengmx @ 2021-03-30 7:05 ` yufengmx 2021-03-30 7:05 ` [dts] [PATCH V4 03/13] conf/vf_l3fwd_em_kernelpf: configuration yufengmx ` (11 subsequent siblings) 13 siblings, 0 replies; 15+ messages in thread From: yufengmx @ 2021-03-30 7:05 UTC (permalink / raw) To: dts, lijuan.tu; +Cc: yufengmx #. unify vf l3fwd nic support list. #. add suite series name method. #. remove comiple restore limitation. #. rename host testpmd whitelist method. Signed-off-by: yufengmx <yufengx.mo@intel.com> --- tests/perf_test_base.py | 38 ++++++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/tests/perf_test_base.py b/tests/perf_test_base.py index 20f3e152..4b76e6b1 100644 --- a/tests/perf_test_base.py +++ b/tests/perf_test_base.py @@ -51,6 +51,17 @@ from exception import VerifyFailure import utils +VF_L3FWD_NIC_SUPPORT = frozenset(( + "niantic", + "fortville_spirit", + "fortville_25g", + "fortville_eagle", + "columbiaville_100g", + "columbiaville_25g", + "columbiaville_25gx2", +)) + + @unique class BIN_TYPE(Enum): L3FWD = 'l3fwd' @@ -625,14 +636,11 @@ class PerfTestBase(object): "define RTE_TEST_TX_DESC_DEFAULT 2048/' " "./examples/l3fwd/l3fwd.h")) if self.__mode is SUITE_TYPE.VF: - self.__l3fwd_lpm = self.__l3fwd_em = \ - self.__l3fwd_init(MATCH_MODE.EM, rename=False) # init testpmd if self.__pf_driver is not NIC_DRV.PCI_STUB: self.__init_host_testpmd() - else: - self.__l3fwd_em = self.__l3fwd_init(MATCH_MODE.EM) - self.__l3fwd_lpm = self.__l3fwd_init(MATCH_MODE.LPM) + self.__l3fwd_em = self.__l3fwd_init(MATCH_MODE.EM) + self.__l3fwd_lpm = self.__l3fwd_init(MATCH_MODE.LPM) def __preset_compilation(self): # Update compile config file and rebuild to get best perf on different nics @@ -673,7 +681,7 @@ class PerfTestBase(object): 'core_mask': core_mask, 'mem_channel': self.dut.get_memory_channels(), 'memsize': mem_size, - 'whitelist': self.__get_testpmd_whitelist(), + 'whitelist': self.__get_host_testpmd_whitelist(), 'prefix': 'pf', }) self.__host_pmd_con([cmd, "testpmd> ", 120]) self.__is_pmd_on = True @@ -1238,8 +1246,19 @@ class PerfTestBase(object): vf_driver = test_content.get('vf_driver') return pf_driver, vf_driver + def __set_suite_series_name(self): + pat = "vf_l3fwd.*_kernelpf" + if re.match(pat, self.suite_name): + self.__suite = SUITE_NAME.VF_KERNELPF + return + pat = "testpmd*_perf" + if re.match(pat, self.suite_name): + self.__suite = SUITE_NAME.TESTPMD_PERF + return + self.__suite = None + def __get_vf_test_content_from_cfg(self, test_content): - self.__suite = get_enum_name(self.suite_name, SUITE_NAME) + self.__set_suite_series_name() # pf driver pf_driver, vf_driver = self.__get_suite_vf_pf_driver(test_content) if pf_driver and isinstance(pf_driver, str): @@ -1356,7 +1375,7 @@ class PerfTestBase(object): return whitelist - def __get_testpmd_whitelist(self): + def __get_host_testpmd_whitelist(self): whitelist = ''.join(['-w {} '.format(info.get('pf_pci')) for _, info in self.__vf_ports_info.items()]) return whitelist @@ -1404,8 +1423,7 @@ class PerfTestBase(object): self.dut.close_session(self.__pmd_session) self.__pmd_session = None self.__vf_destroy() - if self.__mode is SUITE_TYPE.PF: - self.__restore_compilation() + self.__restore_compilation() def perf_set_cur_case(self, name): self.__cur_case = name -- 2.21.0 ^ permalink raw reply [flat|nested] 15+ messages in thread
* [dts] [PATCH V4 03/13] conf/vf_l3fwd_em_kernelpf: configuration 2021-03-30 7:05 [dts] [PATCH V4 00/13] vf_l3fwd_kernelpf: add more test scenario yufengmx 2021-03-30 7:05 ` [dts] [PATCH V4 01/13] conf/vf_l3fwd_base: add more flows yufengmx 2021-03-30 7:05 ` [dts] [PATCH V4 02/13] tests/perf_test_base: extend vf l3fwd content yufengmx @ 2021-03-30 7:05 ` yufengmx 2021-03-30 7:05 ` [dts] [PATCH V4 04/13] tests/vf_l3fwd_em_kernelpf: script yufengmx ` (10 subsequent siblings) 13 siblings, 0 replies; 15+ messages in thread From: yufengmx @ 2021-03-30 7:05 UTC (permalink / raw) To: dts, lijuan.tu; +Cc: yufengmx add vf_l3fwd_em_kernelpf suite testing configuration. Signed-off-by: yufengmx <yufengx.mo@intel.com> --- conf/vf_l3fwd_em_kernelpf.cfg | 101 ++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 conf/vf_l3fwd_em_kernelpf.cfg diff --git a/conf/vf_l3fwd_em_kernelpf.cfg b/conf/vf_l3fwd_em_kernelpf.cfg new file mode 100644 index 00000000..4a6c0e9f --- /dev/null +++ b/conf/vf_l3fwd_em_kernelpf.cfg @@ -0,0 +1,101 @@ +# Users could change these configuration on demand: +# +# detail content reference to ``vf_l3fwd_kernelpf.cfg`` +# + +[suite] +test_duration = 60 +accepted_tolerance = '1%%' + +test_parameters = { + '1C/1T-1Q': ['64', '128', '256', '512', '1024', '1280', '1518',], + '1C/2T-2Q': ['64', '128', '256', '512', '1024', '1280', '1518',], + '2C/2T-2Q': ['64', '128', '256', '512', '1024', '1280', '1518',], + '2C/4T-4Q': ['64', '128', '256', '512', '1024', '1280', '1518',], + '4C/4T-4Q': ['64', '128', '256', '512', '1024', '1280', '1518',],} + +expected_throughput = { + 'test_perf_vf_throughput_ipv4_em': { + 'niantic': { + '1C/1T-1Q': { + '64': '0.00', + '128': '0.00', + '256': '0.00', + '512': '0.00', + '1024': '0.00', + '1280': '0.00', + '1518': '0.00', }, + '1C/2T-2Q': { + '64': '0.00', + '128': '0.00', + '256': '0.00', + '512': '0.00', + '1024': '0.00', + '1280': '0.00', + '1518': '0.00', }, + '2C/2T-2Q': { + '64': '0.00', + '128': '0.00', + '256': '0.00', + '512': '0.00', + '1024': '0.00', + '1280': '0.00', + '1518': '0.00', }, + '2C/4T-4Q': { + '64': '0.00', + '128': '0.00', + '256': '0.00', + '512': '0.00', + '1024': '0.00', + '1280': '0.00', + '1518': '0.00', }, + '4C/4T-4Q': { + '64': '0.00', + '128': '0.00', + '256': '0.00', + '512': '0.00', + '1024': '0.00', + '1280': '0.00', + '1518': '0.00', },},}, + 'test_perf_vf_throughput_ipv6_em': { + 'niantic': { + '1C/1T-1Q': { + '64': '0.00', + '128': '0.00', + '256': '0.00', + '512': '0.00', + '1024': '0.00', + '1280': '0.00', + '1518': '0.00', }, + '1C/2T-2Q': { + '64': '0.00', + '128': '0.00', + '256': '0.00', + '512': '0.00', + '1024': '0.00', + '1280': '0.00', + '1518': '0.00', }, + '2C/2T-2Q': { + '64': '0.00', + '128': '0.00', + '256': '0.00', + '512': '0.00', + '1024': '0.00', + '1280': '0.00', + '1518': '0.00', }, + '2C/4T-4Q': { + '64': '0.00', + '128': '0.00', + '256': '0.00', + '512': '0.00', + '1024': '0.00', + '1280': '0.00', + '1518': '0.00', }, + '4C/4T-4Q': { + '64': '0.00', + '128': '0.00', + '256': '0.00', + '512': '0.00', + '1024': '0.00', + '1280': '0.00', + '1518': '0.00', },},},} -- 2.21.0 ^ permalink raw reply [flat|nested] 15+ messages in thread
* [dts] [PATCH V4 04/13] tests/vf_l3fwd_em_kernelpf: script 2021-03-30 7:05 [dts] [PATCH V4 00/13] vf_l3fwd_kernelpf: add more test scenario yufengmx ` (2 preceding siblings ...) 2021-03-30 7:05 ` [dts] [PATCH V4 03/13] conf/vf_l3fwd_em_kernelpf: configuration yufengmx @ 2021-03-30 7:05 ` yufengmx 2021-03-30 7:05 ` [dts] [PATCH V4 05/13] conf/vf_l3fwd_kernelpf: configuration yufengmx ` (9 subsequent siblings) 13 siblings, 0 replies; 15+ messages in thread From: yufengmx @ 2021-03-30 7:05 UTC (permalink / raw) To: dts, lijuan.tu; +Cc: yufengmx vf_l3fwd_em_kernelpf suite automation script. Signed-off-by: yufengmx <yufengx.mo@intel.com> --- tests/TestSuite_vf_l3fwd_em_kernelpf.py | 89 +++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 tests/TestSuite_vf_l3fwd_em_kernelpf.py diff --git a/tests/TestSuite_vf_l3fwd_em_kernelpf.py b/tests/TestSuite_vf_l3fwd_em_kernelpf.py new file mode 100644 index 00000000..05cda1d1 --- /dev/null +++ b/tests/TestSuite_vf_l3fwd_em_kernelpf.py @@ -0,0 +1,89 @@ +# BSD LICENSE +# +# Copyright(c) 2010-2021 Intel Corporation. All rights reserved. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Intel Corporation nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import os +import time +from test_case import TestCase +from perf_test_base import PerfTestBase, IP_TYPE, MATCH_MODE, SUITE_TYPE, VF_L3FWD_NIC_SUPPORT + + +class TestVfL3fwdEmKernelPf(TestCase, PerfTestBase): + # + # Test cases. + # + + def set_up_all(self): + """ + Run at the start of each test suite. + """ + self.verify(self.nic in VF_L3FWD_NIC_SUPPORT, + "NIC Unsupported: " + str(self.nic)) + self.dut_ports = self.dut.get_ports(self.nic) + valports = [ + _ for _ in self.dut_ports if self.tester.get_local_port(_) != -1] + self.logger.debug(valports) + self.verify_ports_number(valports) + # get socket and cores + socket = self.dut.get_numa_id(self.dut_ports[0]) + cores = self.dut.get_core_list("1S/6C/1T", socket=socket) + self.verify(cores, "Requested 6 cores failed") + # init l3fwd common base class parameters + PerfTestBase.__init__(self, valports, socket, mode=SUITE_TYPE.VF) + # preset testing environment + self.perf_preset_test_environment(self.get_suite_cfg()) + + def tear_down_all(self): + """ + Run after each test suite. + """ + self.perf_destroy_resource() + self.l3fwd_save_results(json_file="{}.json".format(self.suite_name)) + + def set_up(self): + """ + Run before each test case. + """ + pass + + def tear_down(self): + """ + Run after each test case. + """ + self.dut.kill_all() + self.perf_reset_cur_case() + + def test_perf_vf_throughput_ipv4_em(self): + self.perf_set_cur_case('test_perf_vf_throughput_ipv4_em') + self.ms_throughput(l3_proto=IP_TYPE.V4, mode=MATCH_MODE.EM) + + def test_perf_vf_throughput_ipv6_em(self): + self.perf_set_cur_case('test_perf_vf_throughput_ipv6_em') + self.ms_throughput(l3_proto=IP_TYPE.V6, mode=MATCH_MODE.EM) -- 2.21.0 ^ permalink raw reply [flat|nested] 15+ messages in thread
* [dts] [PATCH V4 05/13] conf/vf_l3fwd_kernelpf: configuration 2021-03-30 7:05 [dts] [PATCH V4 00/13] vf_l3fwd_kernelpf: add more test scenario yufengmx ` (3 preceding siblings ...) 2021-03-30 7:05 ` [dts] [PATCH V4 04/13] tests/vf_l3fwd_em_kernelpf: script yufengmx @ 2021-03-30 7:05 ` yufengmx 2021-03-30 7:05 ` [dts] [PATCH V4 06/13] tests/vf_l3fwd_kernelpf: add more test scenario yufengmx ` (8 subsequent siblings) 13 siblings, 0 replies; 15+ messages in thread From: yufengmx @ 2021-03-30 7:05 UTC (permalink / raw) To: dts, lijuan.tu; +Cc: yufengmx add vf_l3fwd_kernelpf suite testing configuration. Signed-off-by: yufengmx <yufengx.mo@intel.com> --- conf/vf_l3fwd_kernelpf.cfg | 305 ++++++++++++++++++++++++++++++++++++- 1 file changed, 301 insertions(+), 4 deletions(-) diff --git a/conf/vf_l3fwd_kernelpf.cfg b/conf/vf_l3fwd_kernelpf.cfg index 9c711770..283ed8c9 100644 --- a/conf/vf_l3fwd_kernelpf.cfg +++ b/conf/vf_l3fwd_kernelpf.cfg @@ -50,16 +50,59 @@ # tests as usual. [suite] -update_expected = True -test_duration = 12 -accepted_tolerance = 1 +test_duration = 60 +accepted_tolerance = '1%%' + test_parameters = { '1C/1T-1Q': ['64', '128', '256', '512', '1024', '1280', '1518',], '1C/2T-2Q': ['64', '128', '256', '512', '1024', '1280', '1518',], '2C/2T-2Q': ['64', '128', '256', '512', '1024', '1280', '1518',], '2C/4T-4Q': ['64', '128', '256', '512', '1024', '1280', '1518',], '4C/4T-4Q': ['64', '128', '256', '512', '1024', '1280', '1518',],} + expected_throughput = { + 'test_perf_vf_throughput_ipv4_em': { + 'niantic': { + '1C/1T-1Q': { + '64': '0.00', + '128': '0.00', + '256': '0.00', + '512': '0.00', + '1024': '0.00', + '1280': '0.00', + '1518': '0.00', }, + '1C/2T-2Q': { + '64': '0.00', + '128': '0.00', + '256': '0.00', + '512': '0.00', + '1024': '0.00', + '1280': '0.00', + '1518': '0.00', }, + '2C/2T-2Q': { + '64': '0.00', + '128': '0.00', + '256': '0.00', + '512': '0.00', + '1024': '0.00', + '1280': '0.00', + '1518': '0.00', }, + '2C/4T-4Q': { + '64': '0.00', + '128': '0.00', + '256': '0.00', + '512': '0.00', + '1024': '0.00', + '1280': '0.00', + '1518': '0.00', }, + '4C/4T-4Q': { + '64': '0.00', + '128': '0.00', + '256': '0.00', + '512': '0.00', + '1024': '0.00', + '1280': '0.00', + '1518': '0.00', },},}, 'test_perf_vf_throughput_ipv4_lpm': { 'niantic': { '1C/1T-1Q': { @@ -101,4 +144,258 @@ expected_throughput = { '512': '0.00', '1024': '0.00', '1280': '0.00', - '1518': '0.00', },},},} \ No newline at end of file + '1518': '0.00', },},}, + 'test_perf_vf_throughput_ipv6_em': { + 'niantic': { + '1C/1T-1Q': { + '64': '0.00', + '128': '0.00', + '256': '0.00', + '512': '0.00', + '1024': '0.00', + '1280': '0.00', + '1518': '0.00', }, + '1C/2T-2Q': { + '64': '0.00', + '128': '0.00', + '256': '0.00', + '512': '0.00', + '1024': '0.00', + '1280': '0.00', + '1518': '0.00', }, + '2C/2T-2Q': { + '64': '0.00', + '128': '0.00', + '256': '0.00', + '512': '0.00', + '1024': '0.00', + '1280': '0.00', + '1518': '0.00', }, + '2C/4T-4Q': { + '64': '0.00', + '128': '0.00', + '256': '0.00', + '512': '0.00', + '1024': '0.00', + '1280': '0.00', + '1518': '0.00', }, + '4C/4T-4Q': { + '64': '0.00', + '128': '0.00', + '256': '0.00', + '512': '0.00', + '1024': '0.00', + '1280': '0.00', + '1518': '0.00', },},}, + 'test_perf_vf_throughput_ipv6_lpm': { + 'niantic': { + '1C/1T-1Q': { + '64': '0.00', + '128': '0.00', + '256': '0.00', + '512': '0.00', + '1024': '0.00', + '1280': '0.00', + '1518': '0.00', }, + '1C/2T-2Q': { + '64': '0.00', + '128': '0.00', + '256': '0.00', + '512': '0.00', + '1024': '0.00', + '1280': '0.00', + '1518': '0.00', }, + '2C/2T-2Q': { + '64': '0.00', + '128': '0.00', + '256': '0.00', + '512': '0.00', + '1024': '0.00', + '1280': '0.00', + '1518': '0.00', }, + '2C/4T-4Q': { + '64': '0.00', + '128': '0.00', + '256': '0.00', + '512': '0.00', + '1024': '0.00', + '1280': '0.00', + '1518': '0.00', }, + '4C/4T-4Q': { + '64': '0.00', + '128': '0.00', + '256': '0.00', + '512': '0.00', + '1024': '0.00', + '1280': '0.00', + '1518': '0.00', },},},} + +expected_rfc2544 = { + 'test_perf_vf_rfc2544_ipv4_em': { + 'niantic': { + '1C/1T-1Q': { + '64': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '128': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '256': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '512': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1024': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1280': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1518': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } } }, + '1C/2T-2Q': { + '64': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '128': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '256': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '512': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1024': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1280': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1518': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } } }, + '2C/2T-2Q': { + '64': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '128': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '256': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '512': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1024': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1280': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1518': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } } }, + '2C/4T-4Q': { + '64': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '128': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '256': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '512': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1024': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1280': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1518': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } } }, + '4C/4T-4Q': { + '64': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '128': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '256': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '512': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1024': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1280': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1518': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } } },},}, + 'test_perf_vf_rfc2544_ipv4_lpm': { + 'niantic': { + '1C/1T-1Q': { + '64': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '128': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '256': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '512': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1024': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1280': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1518': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } } }, + '1C/2T-2Q': { + '64': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '128': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '256': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '512': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1024': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1280': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1518': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } } }, + '2C/2T-2Q': { + '64': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '128': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '256': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '512': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1024': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1280': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1518': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } } }, + '2C/4T-4Q': { + '64': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '128': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '256': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '512': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1024': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1280': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1518': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } } }, + '4C/4T-4Q': { + '64': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '128': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '256': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '512': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1024': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1280': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1518': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } } },},}, + 'test_perf_vf_rfc2544_ipv6_em': { + 'niantic': { + '1C/1T-1Q': { + '64': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '128': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '256': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '512': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1024': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1280': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1518': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } } }, + '1C/2T-2Q': { + '64': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '128': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '256': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '512': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1024': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1280': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1518': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } } }, + '2C/2T-2Q': { + '64': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '128': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '256': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '512': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1024': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1280': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1518': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } } }, + '2C/4T-4Q': { + '64': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '128': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '256': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '512': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1024': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1280': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1518': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } } }, + '4C/4T-4Q': { + '64': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '128': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '256': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '512': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1024': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1280': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1518': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } } },},}, + 'test_perf_vf_rfc2544_ipv6_lpm': { + 'niantic': { + '1C/1T-1Q': { + '64': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '128': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '256': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '512': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1024': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1280': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1518': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } } }, + '1C/2T-2Q': { + '64': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '128': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '256': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '512': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1024': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1280': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1518': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } } }, + '2C/2T-2Q': { + '64': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '128': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '256': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '512': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1024': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1280': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1518': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } } }, + '2C/4T-4Q': { + '64': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '128': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '256': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '512': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1024': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1280': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1518': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } } }, + '4C/4T-4Q': { + '64': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '128': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '256': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '512': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1024': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1280': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1518': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } } },},},} \ No newline at end of file -- 2.21.0 ^ permalink raw reply [flat|nested] 15+ messages in thread
* [dts] [PATCH V4 06/13] tests/vf_l3fwd_kernelpf: add more test scenario 2021-03-30 7:05 [dts] [PATCH V4 00/13] vf_l3fwd_kernelpf: add more test scenario yufengmx ` (4 preceding siblings ...) 2021-03-30 7:05 ` [dts] [PATCH V4 05/13] conf/vf_l3fwd_kernelpf: configuration yufengmx @ 2021-03-30 7:05 ` yufengmx 2021-03-30 7:05 ` [dts] [PATCH V4 07/13] conf/vf_l3fwd_lpm_ipv4_kernelpf: configuration yufengmx ` (7 subsequent siblings) 13 siblings, 0 replies; 15+ messages in thread From: yufengmx @ 2021-03-30 7:05 UTC (permalink / raw) To: dts, lijuan.tu; +Cc: yufengmx add more test scenario cases. Signed-off-by: yufengmx <yufengx.mo@intel.com> --- tests/TestSuite_vf_l3fwd_kernelpf.py | 40 +++++++++++++++++++++------- 1 file changed, 31 insertions(+), 9 deletions(-) diff --git a/tests/TestSuite_vf_l3fwd_kernelpf.py b/tests/TestSuite_vf_l3fwd_kernelpf.py index 4cd44aaa..d5ed897a 100644 --- a/tests/TestSuite_vf_l3fwd_kernelpf.py +++ b/tests/TestSuite_vf_l3fwd_kernelpf.py @@ -32,7 +32,7 @@ import os import time from test_case import TestCase -from perf_test_base import PerfTestBase, IP_TYPE, MATCH_MODE, SUITE_TYPE +from perf_test_base import PerfTestBase, IP_TYPE, MATCH_MODE, SUITE_TYPE, VF_L3FWD_NIC_SUPPORT class TestVfL3fwdKernelPf(TestCase, PerfTestBase): @@ -44,14 +44,8 @@ class TestVfL3fwdKernelPf(TestCase, PerfTestBase): """ Run at the start of each test suite. """ - self.verify(self.nic in [ - "niantic", - "fortville_spirit", - "fortville_25g", - "fortville_eagle", - "columbiaville_100g", - "columbiaville_25g", - "columbiaville_25gx2"], "NIC Unsupported: " + str(self.nic)) + self.verify(self.nic in VF_L3FWD_NIC_SUPPORT, + "NIC Unsupported: " + str(self.nic)) self.dut_ports = self.dut.get_ports(self.nic) valports = [ _ for _ in self.dut_ports if self.tester.get_local_port(_) != -1] @@ -86,6 +80,34 @@ class TestVfL3fwdKernelPf(TestCase, PerfTestBase): self.dut.kill_all() self.perf_reset_cur_case() + def test_perf_vf_rfc2544_ipv4_lpm(self): + self.perf_set_cur_case('test_perf_vf_rfc2544_ipv4_lpm') + self.qt_rfc2544(l3_proto=IP_TYPE.V4, mode=MATCH_MODE.LPM) + + def test_perf_vf_rfc2544_ipv4_em(self): + self.perf_set_cur_case('test_perf_vf_rfc2544_ipv4_em') + self.qt_rfc2544(l3_proto=IP_TYPE.V4, mode=MATCH_MODE.EM) + def test_perf_vf_throughput_ipv4_lpm(self): self.perf_set_cur_case('test_perf_vf_throughput_ipv4_lpm') self.ms_throughput(l3_proto=IP_TYPE.V4, mode=MATCH_MODE.LPM) + + def test_perf_vf_throughput_ipv4_em(self): + self.perf_set_cur_case('test_perf_vf_throughput_ipv4_em') + self.ms_throughput(l3_proto=IP_TYPE.V4, mode=MATCH_MODE.EM) + + def test_perf_vf_rfc2544_ipv6_lpm(self): + self.perf_set_cur_case('test_perf_vf_rfc2544_ipv6_lpm') + self.qt_rfc2544(l3_proto=IP_TYPE.V6, mode=MATCH_MODE.LPM) + + def test_perf_vf_rfc2544_ipv6_em(self): + self.perf_set_cur_case('test_perf_vf_rfc2544_ipv6_em') + self.qt_rfc2544(l3_proto=IP_TYPE.V6, mode=MATCH_MODE.EM) + + def test_perf_vf_throughput_ipv6_lpm(self): + self.perf_set_cur_case('test_perf_vf_throughput_ipv6_lpm') + self.ms_throughput(l3_proto=IP_TYPE.V6, mode=MATCH_MODE.LPM) + + def test_perf_vf_throughput_ipv6_em(self): + self.perf_set_cur_case('test_perf_vf_throughput_ipv6_em') + self.ms_throughput(l3_proto=IP_TYPE.V6, mode=MATCH_MODE.EM) -- 2.21.0 ^ permalink raw reply [flat|nested] 15+ messages in thread
* [dts] [PATCH V4 07/13] conf/vf_l3fwd_lpm_ipv4_kernelpf: configuration 2021-03-30 7:05 [dts] [PATCH V4 00/13] vf_l3fwd_kernelpf: add more test scenario yufengmx ` (5 preceding siblings ...) 2021-03-30 7:05 ` [dts] [PATCH V4 06/13] tests/vf_l3fwd_kernelpf: add more test scenario yufengmx @ 2021-03-30 7:05 ` yufengmx 2021-03-30 7:05 ` [dts] [PATCH V4 08/13] tests/vf_l3fwd_lpm_ipv4_kernelpf: script yufengmx ` (6 subsequent siblings) 13 siblings, 0 replies; 15+ messages in thread From: yufengmx @ 2021-03-30 7:05 UTC (permalink / raw) To: dts, lijuan.tu; +Cc: yufengmx add vf_l3fwd_lpm_ipv4_kernelpf suite testing configuration. Signed-off-by: yufengmx <yufengx.mo@intel.com> --- conf/vf_l3fwd_lpm_ipv4_kernelpf.cfg | 59 +++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 conf/vf_l3fwd_lpm_ipv4_kernelpf.cfg diff --git a/conf/vf_l3fwd_lpm_ipv4_kernelpf.cfg b/conf/vf_l3fwd_lpm_ipv4_kernelpf.cfg new file mode 100644 index 00000000..fae8f10d --- /dev/null +++ b/conf/vf_l3fwd_lpm_ipv4_kernelpf.cfg @@ -0,0 +1,59 @@ +# Users could change these configuration on demand: +# +# detail content reference to ``vf_l3fwd_kernelpf.cfg`` +# + +[suite] +test_duration = 60 +accepted_tolerance = '1%%' + +test_parameters = { + '1C/1T-1Q': ['64', '128', '256', '512', '1024', '1280', '1518',], + '1C/2T-2Q': ['64', '128', '256', '512', '1024', '1280', '1518',], + '2C/2T-2Q': ['64', '128', '256', '512', '1024', '1280', '1518',], + '2C/4T-4Q': ['64', '128', '256', '512', '1024', '1280', '1518',], + '4C/4T-4Q': ['64', '128', '256', '512', '1024', '1280', '1518',],} + +expected_throughput = { + 'test_perf_vf_throughput_ipv4_lpm': { + 'niantic': { + '1C/1T-1Q': { + '64': '0.00', + '128': '0.00', + '256': '0.00', + '512': '0.00', + '1024': '0.00', + '1280': '0.00', + '1518': '0.00', }, + '1C/2T-2Q': { + '64': '0.00', + '128': '0.00', + '256': '0.00', + '512': '0.00', + '1024': '0.00', + '1280': '0.00', + '1518': '0.00', }, + '2C/2T-2Q': { + '64': '0.00', + '128': '0.00', + '256': '0.00', + '512': '0.00', + '1024': '0.00', + '1280': '0.00', + '1518': '0.00', }, + '2C/4T-4Q': { + '64': '0.00', + '128': '0.00', + '256': '0.00', + '512': '0.00', + '1024': '0.00', + '1280': '0.00', + '1518': '0.00', }, + '4C/4T-4Q': { + '64': '0.00', + '128': '0.00', + '256': '0.00', + '512': '0.00', + '1024': '0.00', + '1280': '0.00', + '1518': '0.00', },},},} -- 2.21.0 ^ permalink raw reply [flat|nested] 15+ messages in thread
* [dts] [PATCH V4 08/13] tests/vf_l3fwd_lpm_ipv4_kernelpf: script 2021-03-30 7:05 [dts] [PATCH V4 00/13] vf_l3fwd_kernelpf: add more test scenario yufengmx ` (6 preceding siblings ...) 2021-03-30 7:05 ` [dts] [PATCH V4 07/13] conf/vf_l3fwd_lpm_ipv4_kernelpf: configuration yufengmx @ 2021-03-30 7:05 ` yufengmx 2021-03-30 7:05 ` [dts] [PATCH V4 09/13] conf/vf_l3fwd_lpm_ipv4_rfc2544_kernelpf: configuration yufengmx ` (5 subsequent siblings) 13 siblings, 0 replies; 15+ messages in thread From: yufengmx @ 2021-03-30 7:05 UTC (permalink / raw) To: dts, lijuan.tu; +Cc: yufengmx vf_l3fwd_lpm_ipv4_kernelpf suite automation script. Signed-off-by: yufengmx <yufengx.mo@intel.com> --- tests/TestSuite_vf_l3fwd_lpm_ipv4_kernelpf.py | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 tests/TestSuite_vf_l3fwd_lpm_ipv4_kernelpf.py diff --git a/tests/TestSuite_vf_l3fwd_lpm_ipv4_kernelpf.py b/tests/TestSuite_vf_l3fwd_lpm_ipv4_kernelpf.py new file mode 100644 index 00000000..51490047 --- /dev/null +++ b/tests/TestSuite_vf_l3fwd_lpm_ipv4_kernelpf.py @@ -0,0 +1,85 @@ +# BSD LICENSE +# +# Copyright(c) 2010-2021 Intel Corporation. All rights reserved. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Intel Corporation nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import os +import time +from test_case import TestCase +from perf_test_base import PerfTestBase, IP_TYPE, MATCH_MODE, SUITE_TYPE, VF_L3FWD_NIC_SUPPORT + + +class TestVfL3fwdLpmIpv4KernelPf(TestCase, PerfTestBase): + # + # Test cases. + # + + def set_up_all(self): + """ + Run at the start of each test suite. + """ + self.verify(self.nic in VF_L3FWD_NIC_SUPPORT, + "NIC Unsupported: " + str(self.nic)) + self.dut_ports = self.dut.get_ports(self.nic) + valports = [ + _ for _ in self.dut_ports if self.tester.get_local_port(_) != -1] + self.logger.debug(valports) + self.verify_ports_number(valports) + # get socket and cores + socket = self.dut.get_numa_id(self.dut_ports[0]) + cores = self.dut.get_core_list("1S/6C/1T", socket=socket) + self.verify(cores, "Requested 6 cores failed") + # init l3fwd common base class parameters + PerfTestBase.__init__(self, valports, socket, mode=SUITE_TYPE.VF) + # preset testing environment + self.perf_preset_test_environment(self.get_suite_cfg()) + + def tear_down_all(self): + """ + Run after each test suite. + """ + self.perf_destroy_resource() + self.l3fwd_save_results(json_file="{}.json".format(self.suite_name)) + + def set_up(self): + """ + Run before each test case. + """ + pass + + def tear_down(self): + """ + Run after each test case. + """ + self.dut.kill_all() + self.perf_reset_cur_case() + + def test_perf_vf_throughput_ipv4_lpm(self): + self.perf_set_cur_case('test_perf_vf_throughput_ipv4_lpm') + self.ms_throughput(l3_proto=IP_TYPE.V4, mode=MATCH_MODE.LPM) -- 2.21.0 ^ permalink raw reply [flat|nested] 15+ messages in thread
* [dts] [PATCH V4 09/13] conf/vf_l3fwd_lpm_ipv4_rfc2544_kernelpf: configuration 2021-03-30 7:05 [dts] [PATCH V4 00/13] vf_l3fwd_kernelpf: add more test scenario yufengmx ` (7 preceding siblings ...) 2021-03-30 7:05 ` [dts] [PATCH V4 08/13] tests/vf_l3fwd_lpm_ipv4_kernelpf: script yufengmx @ 2021-03-30 7:05 ` yufengmx 2021-03-30 7:05 ` [dts] [PATCH V4 10/13] tests/vf_l3fwd_lpm_ipv4_rfc2544_kernelpf: script yufengmx ` (4 subsequent siblings) 13 siblings, 0 replies; 15+ messages in thread From: yufengmx @ 2021-03-30 7:05 UTC (permalink / raw) To: dts, lijuan.tu; +Cc: yufengmx add vf_l3fwd_lpm_ipv4_rfc2544_kernelpf suite testing configuration. Signed-off-by: yufengmx <yufengx.mo@intel.com> --- conf/vf_l3fwd_lpm_ipv4_rfc2544_kernelpf.cfg | 59 +++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 conf/vf_l3fwd_lpm_ipv4_rfc2544_kernelpf.cfg diff --git a/conf/vf_l3fwd_lpm_ipv4_rfc2544_kernelpf.cfg b/conf/vf_l3fwd_lpm_ipv4_rfc2544_kernelpf.cfg new file mode 100644 index 00000000..afd039ed --- /dev/null +++ b/conf/vf_l3fwd_lpm_ipv4_rfc2544_kernelpf.cfg @@ -0,0 +1,59 @@ +# Users could change these configuration on demand: +# +# detail content reference to ``vf_l3fwd_kernelpf.cfg`` +# + +[suite] +test_duration = 60 +accepted_tolerance = '1%%' + +test_parameters = { + '1C/1T-1Q': ['64', '128', '256', '512', '1024', '1280', '1518',], + '1C/2T-2Q': ['64', '128', '256', '512', '1024', '1280', '1518',], + '2C/2T-2Q': ['64', '128', '256', '512', '1024', '1280', '1518',], + '2C/4T-4Q': ['64', '128', '256', '512', '1024', '1280', '1518',], + '4C/4T-4Q': ['64', '128', '256', '512', '1024', '1280', '1518',],} + +expected_rfc2544 = { + 'test_perf_vf_rfc2544_ipv4_lpm': { + 'niantic': { + '1C/1T-1Q': { + '64': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '128': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '256': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '512': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1024': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1280': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1518': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } } }, + '1C/2T-2Q': { + '64': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '128': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '256': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '512': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1024': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1280': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1518': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } } }, + '2C/2T-2Q': { + '64': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '128': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '256': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '512': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1024': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1280': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1518': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } } }, + '2C/4T-4Q': { + '64': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '128': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '256': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '512': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1024': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1280': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1518': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } } }, + '4C/4T-4Q': { + '64': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '128': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '256': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '512': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1024': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1280': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } }, + '1518': { 'rate' :'100.00', 'traffic_opt': {'min_rate': '10.0', 'max_rate': '100.0', 'pdr': '0.01', 'accuracy': '5', } } },},},} -- 2.21.0 ^ permalink raw reply [flat|nested] 15+ messages in thread
* [dts] [PATCH V4 10/13] tests/vf_l3fwd_lpm_ipv4_rfc2544_kernelpf: script 2021-03-30 7:05 [dts] [PATCH V4 00/13] vf_l3fwd_kernelpf: add more test scenario yufengmx ` (8 preceding siblings ...) 2021-03-30 7:05 ` [dts] [PATCH V4 09/13] conf/vf_l3fwd_lpm_ipv4_rfc2544_kernelpf: configuration yufengmx @ 2021-03-30 7:05 ` yufengmx 2021-03-30 7:05 ` [dts] [PATCH V4 11/13] conf/vf_l3fwd_lpm_ipv6_kernelpf: configuration yufengmx ` (3 subsequent siblings) 13 siblings, 0 replies; 15+ messages in thread From: yufengmx @ 2021-03-30 7:05 UTC (permalink / raw) To: dts, lijuan.tu; +Cc: yufengmx vf_l3fwd_lpm_ipv4_rfc2544_kernelpf suite automation script. Signed-off-by: yufengmx <yufengx.mo@intel.com> --- ...uite_vf_l3fwd_lpm_ipv4_rfc2544_kernelpf.py | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 tests/TestSuite_vf_l3fwd_lpm_ipv4_rfc2544_kernelpf.py diff --git a/tests/TestSuite_vf_l3fwd_lpm_ipv4_rfc2544_kernelpf.py b/tests/TestSuite_vf_l3fwd_lpm_ipv4_rfc2544_kernelpf.py new file mode 100644 index 00000000..c37d18ad --- /dev/null +++ b/tests/TestSuite_vf_l3fwd_lpm_ipv4_rfc2544_kernelpf.py @@ -0,0 +1,85 @@ +# BSD LICENSE +# +# Copyright(c) 2010-2021 Intel Corporation. All rights reserved. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Intel Corporation nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import os +import time +from test_case import TestCase +from perf_test_base import PerfTestBase, IP_TYPE, MATCH_MODE, SUITE_TYPE, VF_L3FWD_NIC_SUPPORT + + +class TestVfL3fwdLpmIpv4Rfc2544KernelPf(TestCase, PerfTestBase): + # + # Test cases. + # + + def set_up_all(self): + """ + Run at the start of each test suite. + """ + self.verify(self.nic in VF_L3FWD_NIC_SUPPORT, + "NIC Unsupported: " + str(self.nic)) + self.dut_ports = self.dut.get_ports(self.nic) + valports = [ + _ for _ in self.dut_ports if self.tester.get_local_port(_) != -1] + self.logger.debug(valports) + self.verify_ports_number(valports) + # get socket and cores + socket = self.dut.get_numa_id(self.dut_ports[0]) + cores = self.dut.get_core_list("1S/6C/1T", socket=socket) + self.verify(cores, "Requested 6 cores failed") + # init l3fwd common base class parameters + PerfTestBase.__init__(self, valports, socket, mode=SUITE_TYPE.VF) + # preset testing environment + self.perf_preset_test_environment(self.get_suite_cfg()) + + def tear_down_all(self): + """ + Run after each test suite. + """ + self.perf_destroy_resource() + self.l3fwd_save_results(json_file="{}.json".format(self.suite_name)) + + def set_up(self): + """ + Run before each test case. + """ + pass + + def tear_down(self): + """ + Run after each test case. + """ + self.dut.kill_all() + self.perf_reset_cur_case() + + def test_perf_vf_rfc2544_ipv4_lpm(self): + self.perf_set_cur_case('test_perf_vf_rfc2544_ipv4_lpm') + self.qt_rfc2544(l3_proto=IP_TYPE.V4, mode=MATCH_MODE.LPM) -- 2.21.0 ^ permalink raw reply [flat|nested] 15+ messages in thread
* [dts] [PATCH V4 11/13] conf/vf_l3fwd_lpm_ipv6_kernelpf: configuration 2021-03-30 7:05 [dts] [PATCH V4 00/13] vf_l3fwd_kernelpf: add more test scenario yufengmx ` (9 preceding siblings ...) 2021-03-30 7:05 ` [dts] [PATCH V4 10/13] tests/vf_l3fwd_lpm_ipv4_rfc2544_kernelpf: script yufengmx @ 2021-03-30 7:05 ` yufengmx 2021-03-30 7:05 ` [dts] [PATCH V4 12/13] tests/vf_l3fwd_lpm_ipv6_kernelpf: script yufengmx ` (2 subsequent siblings) 13 siblings, 0 replies; 15+ messages in thread From: yufengmx @ 2021-03-30 7:05 UTC (permalink / raw) To: dts, lijuan.tu; +Cc: yufengmx add vf_l3fwd_lpm_ipv6_kernelpf suite testing configuration. Signed-off-by: yufengmx <yufengx.mo@intel.com> --- conf/vf_l3fwd_lpm_ipv6_kernelpf.cfg | 59 +++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 conf/vf_l3fwd_lpm_ipv6_kernelpf.cfg diff --git a/conf/vf_l3fwd_lpm_ipv6_kernelpf.cfg b/conf/vf_l3fwd_lpm_ipv6_kernelpf.cfg new file mode 100644 index 00000000..ac20f6fc --- /dev/null +++ b/conf/vf_l3fwd_lpm_ipv6_kernelpf.cfg @@ -0,0 +1,59 @@ +# Users could change these configuration on demand: +# +# detail content reference to ``vf_l3fwd_kernelpf.cfg`` +# + +[suite] +test_duration = 60 +accepted_tolerance = '1%%' + +test_parameters = { + '1C/1T-1Q': ['64', '128', '256', '512', '1024', '1280', '1518',], + '1C/2T-2Q': ['64', '128', '256', '512', '1024', '1280', '1518',], + '2C/2T-2Q': ['64', '128', '256', '512', '1024', '1280', '1518',], + '2C/4T-4Q': ['64', '128', '256', '512', '1024', '1280', '1518',], + '4C/4T-4Q': ['64', '128', '256', '512', '1024', '1280', '1518',],} + +expected_throughput = { + 'test_perf_vf_throughput_ipv6_lpm': { + 'niantic': { + '1C/1T-1Q': { + '64': '0.00', + '128': '0.00', + '256': '0.00', + '512': '0.00', + '1024': '0.00', + '1280': '0.00', + '1518': '0.00', }, + '1C/2T-2Q': { + '64': '0.00', + '128': '0.00', + '256': '0.00', + '512': '0.00', + '1024': '0.00', + '1280': '0.00', + '1518': '0.00', }, + '2C/2T-2Q': { + '64': '0.00', + '128': '0.00', + '256': '0.00', + '512': '0.00', + '1024': '0.00', + '1280': '0.00', + '1518': '0.00', }, + '2C/4T-4Q': { + '64': '0.00', + '128': '0.00', + '256': '0.00', + '512': '0.00', + '1024': '0.00', + '1280': '0.00', + '1518': '0.00', }, + '4C/4T-4Q': { + '64': '0.00', + '128': '0.00', + '256': '0.00', + '512': '0.00', + '1024': '0.00', + '1280': '0.00', + '1518': '0.00', },},},} -- 2.21.0 ^ permalink raw reply [flat|nested] 15+ messages in thread
* [dts] [PATCH V4 12/13] tests/vf_l3fwd_lpm_ipv6_kernelpf: script 2021-03-30 7:05 [dts] [PATCH V4 00/13] vf_l3fwd_kernelpf: add more test scenario yufengmx ` (10 preceding siblings ...) 2021-03-30 7:05 ` [dts] [PATCH V4 11/13] conf/vf_l3fwd_lpm_ipv6_kernelpf: configuration yufengmx @ 2021-03-30 7:05 ` yufengmx 2021-03-30 7:05 ` [dts] [PATCH V4 13/13] tests/perf_test_base: script yufengmx 2021-03-31 5:54 ` [dts] [PATCH V4 00/13] vf_l3fwd_kernelpf: add more test scenario Tu, Lijuan 13 siblings, 0 replies; 15+ messages in thread From: yufengmx @ 2021-03-30 7:05 UTC (permalink / raw) To: dts, lijuan.tu; +Cc: yufengmx vf_l3fwd_lpm_ipv6_kernelpf suite automation script. Signed-off-by: yufengmx <yufengx.mo@intel.com> --- tests/TestSuite_vf_l3fwd_lpm_ipv6_kernelpf.py | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 tests/TestSuite_vf_l3fwd_lpm_ipv6_kernelpf.py diff --git a/tests/TestSuite_vf_l3fwd_lpm_ipv6_kernelpf.py b/tests/TestSuite_vf_l3fwd_lpm_ipv6_kernelpf.py new file mode 100644 index 00000000..c7cb1b6c --- /dev/null +++ b/tests/TestSuite_vf_l3fwd_lpm_ipv6_kernelpf.py @@ -0,0 +1,85 @@ +# BSD LICENSE +# +# Copyright(c) 2010-2021 Intel Corporation. All rights reserved. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Intel Corporation nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import os +import time +from test_case import TestCase +from perf_test_base import PerfTestBase, IP_TYPE, MATCH_MODE, SUITE_TYPE, VF_L3FWD_NIC_SUPPORT + + +class TestVfL3fwdLpmIpv6KernelPf(TestCase, PerfTestBase): + # + # Test cases. + # + + def set_up_all(self): + """ + Run at the start of each test suite. + """ + self.verify(self.nic in VF_L3FWD_NIC_SUPPORT, + "NIC Unsupported: " + str(self.nic)) + self.dut_ports = self.dut.get_ports(self.nic) + valports = [ + _ for _ in self.dut_ports if self.tester.get_local_port(_) != -1] + self.logger.debug(valports) + self.verify_ports_number(valports) + # get socket and cores + socket = self.dut.get_numa_id(self.dut_ports[0]) + cores = self.dut.get_core_list("1S/6C/1T", socket=socket) + self.verify(cores, "Requested 6 cores failed") + # init l3fwd common base class parameters + PerfTestBase.__init__(self, valports, socket, mode=SUITE_TYPE.VF) + # preset testing environment + self.perf_preset_test_environment(self.get_suite_cfg()) + + def tear_down_all(self): + """ + Run after each test suite. + """ + self.perf_destroy_resource() + self.l3fwd_save_results(json_file="{}.json".format(self.suite_name)) + + def set_up(self): + """ + Run before each test case. + """ + pass + + def tear_down(self): + """ + Run after each test case. + """ + self.dut.kill_all() + self.perf_reset_cur_case() + + def test_perf_vf_throughput_ipv6_lpm(self): + self.perf_set_cur_case('test_perf_vf_throughput_ipv6_lpm') + self.ms_throughput(l3_proto=IP_TYPE.V6, mode=MATCH_MODE.LPM) -- 2.21.0 ^ permalink raw reply [flat|nested] 15+ messages in thread
* [dts] [PATCH V4 13/13] tests/perf_test_base: script 2021-03-30 7:05 [dts] [PATCH V4 00/13] vf_l3fwd_kernelpf: add more test scenario yufengmx ` (11 preceding siblings ...) 2021-03-30 7:05 ` [dts] [PATCH V4 12/13] tests/vf_l3fwd_lpm_ipv6_kernelpf: script yufengmx @ 2021-03-30 7:05 ` yufengmx 2021-03-31 5:54 ` [dts] [PATCH V4 00/13] vf_l3fwd_kernelpf: add more test scenario Tu, Lijuan 13 siblings, 0 replies; 15+ messages in thread From: yufengmx @ 2021-03-30 7:05 UTC (permalink / raw) To: dts, lijuan.tu; +Cc: yufengmx stage 2 demand as below #. accepted_tolerance in [test suit].cfg are changed to percentage, if not set, it will be set to 2% by default. #. delta in json are chagned to percentage. #. add expected throughput in json. #. expected_throughput will be forced to NA if it not set. #. add new conf throughput_stat_sample_interval in conf/<test suite>.cfg, which indicates interval of getting throughput statistics in second, e.g. throughput_stat_sample_interval = 10 if not set, it will be set to 5 seconds by default. #. collect better statistics , get multiple throughput statistics during the test run, and compute the average as the final results. Every <throughput_stat_sample_interval > seconds get throughput once, so it gets multiple throughput statistics during the test run, remove the max and the min, then compute the average of the left as the final throughput. Signed-off-by: yufengmx <yufengx.mo@intel.com> --- tests/perf_test_base.py | 84 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 78 insertions(+), 6 deletions(-) diff --git a/tests/perf_test_base.py b/tests/perf_test_base.py index 4b76e6b1..ba18560c 100644 --- a/tests/perf_test_base.py +++ b/tests/perf_test_base.py @@ -38,6 +38,7 @@ import time import traceback import texttable import json +import numpy as np from enum import Enum, unique from pprint import pformat from itertools import product @@ -109,6 +110,12 @@ class STREAM_TYPE(Enum): RAW = 'RAW' +@unique +class STAT_ALGORITHM(Enum): + ONE = "one" + MEAN = "mean" + + HEADER_SIZE = { 'ether': 18, 'ipv4': 20, @@ -449,6 +456,37 @@ class PerfTestBase(object): time.sleep(self.__traffic_stop_wait_time) return result + def __throughput_set_traffic_opt(self, duration): + option = { + 'method': 'throughput', + 'duration': duration, + 'interval': self.__throughput_stat_sample_interval, + } + return option + + def __throughput_calculate_result(self, result): + if self.__stat_algorithm is STAT_ALGORITHM.ONE: + return result + + if not result or len(result) <= 0: + msg = "failed to get throughput stat" + self.logger.error(msg) + return (0.0, 0.0) + + result = sorted(result) + if self.__stat_algorithm is STAT_ALGORITHM.MEAN: + result = result[1:-1] if len(result) >= 5 else result + bps, pps = [], [] + for v1, v2 in result: + bps.append(v1), pps.append(v2) + ret_stat = round(np.array(bps).mean(), 1), round(np.array(pps).mean(), 1) + else: + msg = f"current not support algorithm <{self.__stat_algorithm}>" + self.logger.warning(msg) + ret_stat = (0.0, 0.0) + + return ret_stat + def __throughput(self, l3_proto, mode, frame_size): """ measure __throughput according to Layer-3 Protocol and Lookup Mode @@ -464,11 +502,11 @@ class PerfTestBase(object): option = { 'stream': streams, 'rate': 100, - 'traffic_opt': { - 'method': 'throughput', - 'duration': duration, }} + 'traffic_opt': self.__throughput_set_traffic_opt(duration), + } # run traffic result = self.__send_packets_by_pktgen(option) + result = self.__throughput_calculate_result(result) # statistics result _, pps = result self.verify(pps > 0, "No traffic detected") @@ -871,7 +909,8 @@ class PerfTestBase(object): def __json_throughput(self, value): return {"unit": "Mpps", "name": "Throughput", "value": round(value[0], 3), - "delta": round(value[1], 3), + "delta": value[1], + "expected": value[2], } def __json_rate_percent(self, value): @@ -987,12 +1026,16 @@ class PerfTestBase(object): expected, pps, round(gap, 2)) self.logger.error(msg) else: - expected = pps + expected = None msg = ('{0} {1} expected throughput value is not set, ' 'ignore check').format(config, frame_size) self.logger.warning(msg) status = 'pass' - js_results.append([status, [pps, pps - expected], percentage, config, frame_size]) + js_results.append([ + status, + [pps, (str(round((pps - expected)/expected, 3))) if expected is not None else "N/A", + round(expected, 3) if expected is not None else "N/A"], + percentage, config, frame_size]) # save data with json format self.__save_throughput_result(self.__cur_case, js_results) # display result table @@ -1394,11 +1437,40 @@ class PerfTestBase(object): self.__valports = port_list return port_list + @property + def __stat_algorithm(self): + algorithm_type = get_enum_name( + self.__test_content.get('stat_algorithm') or 'one', STAT_ALGORITHM) + return algorithm_type + + @property + def __throughput_stat_sample_interval(self): + if self.__stat_algorithm is STAT_ALGORITHM.ONE: + return None + else: + return self.__test_content.get('throughput_stat_sample_interval') or 5 + + def __parse_accepted_tolerance(self): + tolerance = self.__test_content.get('accepted_tolerance') + def get_num(value): + pat = "(\d+\.?\d?)" + result = re.findall(pat, value) + return result[0] if result else '2.0' + + if isinstance(tolerance, int): + _tolerance = float(tolerance) + elif isinstance(tolerance, str): + _tolerance = float(tolerance if tolerance.isdigit() else get_num(tolerance)) + else: + _tolerance = None + self.__test_content['accepted_tolerance'] = float(_tolerance or 2.0) + def perf_preset_test_environment(self, test_content): # if user set port list in cfg file, use port_list = self.__preset_port_list(test_content) # get test content self.__test_content = self.__get_test_content_from_cfg(test_content) + self.__parse_accepted_tolerance() # prepare target source code application self.__preset_compilation() # set up testing environment -- 2.21.0 ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [dts] [PATCH V4 00/13] vf_l3fwd_kernelpf: add more test scenario 2021-03-30 7:05 [dts] [PATCH V4 00/13] vf_l3fwd_kernelpf: add more test scenario yufengmx ` (12 preceding siblings ...) 2021-03-30 7:05 ` [dts] [PATCH V4 13/13] tests/perf_test_base: script yufengmx @ 2021-03-31 5:54 ` Tu, Lijuan 13 siblings, 0 replies; 15+ messages in thread From: Tu, Lijuan @ 2021-03-31 5:54 UTC (permalink / raw) To: Mo, YufengX, dts > -----Original Message----- > From: Mo, YufengX <yufengx.mo@intel.com> > Sent: 2021年3月30日 15:05 > To: dts@dpdk.org; Tu, Lijuan <lijuan.tu@intel.com> > Cc: Mo, YufengX <yufengx.mo@intel.com> > Subject: [dts][PATCH V4 00/13] vf_l3fwd_kernelpf: add more test scenario > > > v4: > - change accepted_tolerance to '1%%' and delta to float > > v3: > - fix checkpatch error. > > v2: > - add stage 2 demand. > > v1: > - add more test scenario. Series applied, thanks. ^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2021-03-31 5:54 UTC | newest] Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-03-30 7:05 [dts] [PATCH V4 00/13] vf_l3fwd_kernelpf: add more test scenario yufengmx 2021-03-30 7:05 ` [dts] [PATCH V4 01/13] conf/vf_l3fwd_base: add more flows yufengmx 2021-03-30 7:05 ` [dts] [PATCH V4 02/13] tests/perf_test_base: extend vf l3fwd content yufengmx 2021-03-30 7:05 ` [dts] [PATCH V4 03/13] conf/vf_l3fwd_em_kernelpf: configuration yufengmx 2021-03-30 7:05 ` [dts] [PATCH V4 04/13] tests/vf_l3fwd_em_kernelpf: script yufengmx 2021-03-30 7:05 ` [dts] [PATCH V4 05/13] conf/vf_l3fwd_kernelpf: configuration yufengmx 2021-03-30 7:05 ` [dts] [PATCH V4 06/13] tests/vf_l3fwd_kernelpf: add more test scenario yufengmx 2021-03-30 7:05 ` [dts] [PATCH V4 07/13] conf/vf_l3fwd_lpm_ipv4_kernelpf: configuration yufengmx 2021-03-30 7:05 ` [dts] [PATCH V4 08/13] tests/vf_l3fwd_lpm_ipv4_kernelpf: script yufengmx 2021-03-30 7:05 ` [dts] [PATCH V4 09/13] conf/vf_l3fwd_lpm_ipv4_rfc2544_kernelpf: configuration yufengmx 2021-03-30 7:05 ` [dts] [PATCH V4 10/13] tests/vf_l3fwd_lpm_ipv4_rfc2544_kernelpf: script yufengmx 2021-03-30 7:05 ` [dts] [PATCH V4 11/13] conf/vf_l3fwd_lpm_ipv6_kernelpf: configuration yufengmx 2021-03-30 7:05 ` [dts] [PATCH V4 12/13] tests/vf_l3fwd_lpm_ipv6_kernelpf: script yufengmx 2021-03-30 7:05 ` [dts] [PATCH V4 13/13] tests/perf_test_base: script yufengmx 2021-03-31 5:54 ` [dts] [PATCH V4 00/13] vf_l3fwd_kernelpf: add more test scenario Tu, Lijuan
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).