test suite reviews and discussions
 help / color / mirror / Atom feed
* [dts] [PATCH V1 00/12] vf_l3fwd_kernelpf: add more test scenario
@ 2021-03-15  5:50 yufengmx
  2021-03-15  5:50 ` [dts] [PATCH V1 01/12] conf/vf_l3fwd_base: add more flows yufengmx
                   ` (11 more replies)
  0 siblings, 12 replies; 13+ messages in thread
From: yufengmx @ 2021-03-15  5:50 UTC (permalink / raw)
  To: dts, lijuan.tu; +Cc: yufengmx


v1: 
 -  add more test scenario. 

yufengmx (12):
  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

 conf/vf_l3fwd_base.cfg                        |  93 +++++-
 conf/vf_l3fwd_em_kernelpf.cfg                 | 101 ++++++
 conf/vf_l3fwd_kernelpf.cfg                    | 303 +++++++++++++++++-
 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                       |  38 ++-
 12 files changed, 1073 insertions(+), 23 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] 13+ messages in thread

* [dts] [PATCH V1 01/12] conf/vf_l3fwd_base: add more flows
  2021-03-15  5:50 [dts] [PATCH V1 00/12] vf_l3fwd_kernelpf: add more test scenario yufengmx
@ 2021-03-15  5:50 ` yufengmx
  2021-03-15  5:50 ` [dts] [PATCH V1 02/12] tests/perf_test_base: extend vf l3fwd content yufengmx
                   ` (10 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: yufengmx @ 2021-03-15  5:50 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] 13+ messages in thread

* [dts] [PATCH V1 02/12] tests/perf_test_base: extend vf l3fwd content
  2021-03-15  5:50 [dts] [PATCH V1 00/12] vf_l3fwd_kernelpf: add more test scenario yufengmx
  2021-03-15  5:50 ` [dts] [PATCH V1 01/12] conf/vf_l3fwd_base: add more flows yufengmx
@ 2021-03-15  5:50 ` yufengmx
  2021-03-15  5:50 ` [dts] [PATCH V1 03/12] conf/vf_l3fwd_em_kernelpf: configuration yufengmx
                   ` (9 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: yufengmx @ 2021-03-15  5:50 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] 13+ messages in thread

* [dts] [PATCH V1 03/12] conf/vf_l3fwd_em_kernelpf: configuration
  2021-03-15  5:50 [dts] [PATCH V1 00/12] vf_l3fwd_kernelpf: add more test scenario yufengmx
  2021-03-15  5:50 ` [dts] [PATCH V1 01/12] conf/vf_l3fwd_base: add more flows yufengmx
  2021-03-15  5:50 ` [dts] [PATCH V1 02/12] tests/perf_test_base: extend vf l3fwd content yufengmx
@ 2021-03-15  5:50 ` yufengmx
  2021-03-15  5:50 ` [dts] [PATCH V1 04/12] tests/vf_l3fwd_em_kernelpf: script yufengmx
                   ` (8 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: yufengmx @ 2021-03-15  5:50 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..11490bf9
--- /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] 13+ messages in thread

* [dts] [PATCH V1 04/12] tests/vf_l3fwd_em_kernelpf: script
  2021-03-15  5:50 [dts] [PATCH V1 00/12] vf_l3fwd_kernelpf: add more test scenario yufengmx
                   ` (2 preceding siblings ...)
  2021-03-15  5:50 ` [dts] [PATCH V1 03/12] conf/vf_l3fwd_em_kernelpf: configuration yufengmx
@ 2021-03-15  5:50 ` yufengmx
  2021-03-15  5:50 ` [dts] [PATCH V1 05/12] conf/vf_l3fwd_kernelpf: configuration yufengmx
                   ` (7 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: yufengmx @ 2021-03-15  5:50 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] 13+ messages in thread

* [dts] [PATCH V1 05/12] conf/vf_l3fwd_kernelpf: configuration
  2021-03-15  5:50 [dts] [PATCH V1 00/12] vf_l3fwd_kernelpf: add more test scenario yufengmx
                   ` (3 preceding siblings ...)
  2021-03-15  5:50 ` [dts] [PATCH V1 04/12] tests/vf_l3fwd_em_kernelpf: script yufengmx
@ 2021-03-15  5:50 ` yufengmx
  2021-03-15  5:50 ` [dts] [PATCH V1 06/12] tests/vf_l3fwd_kernelpf: add more test scenario yufengmx
                   ` (6 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: yufengmx @ 2021-03-15  5:50 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 | 303 ++++++++++++++++++++++++++++++++++++-
 1 file changed, 300 insertions(+), 3 deletions(-)

diff --git a/conf/vf_l3fwd_kernelpf.cfg b/conf/vf_l3fwd_kernelpf.cfg
index 9c711770..c2c71c1b 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
+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] 13+ messages in thread

* [dts] [PATCH V1 06/12] tests/vf_l3fwd_kernelpf: add more test scenario
  2021-03-15  5:50 [dts] [PATCH V1 00/12] vf_l3fwd_kernelpf: add more test scenario yufengmx
                   ` (4 preceding siblings ...)
  2021-03-15  5:50 ` [dts] [PATCH V1 05/12] conf/vf_l3fwd_kernelpf: configuration yufengmx
@ 2021-03-15  5:50 ` yufengmx
  2021-03-15  5:50 ` [dts] [PATCH V1 07/12] conf/vf_l3fwd_lpm_ipv4_kernelpf: configuration yufengmx
                   ` (5 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: yufengmx @ 2021-03-15  5:50 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] 13+ messages in thread

* [dts] [PATCH V1 07/12] conf/vf_l3fwd_lpm_ipv4_kernelpf: configuration
  2021-03-15  5:50 [dts] [PATCH V1 00/12] vf_l3fwd_kernelpf: add more test scenario yufengmx
                   ` (5 preceding siblings ...)
  2021-03-15  5:50 ` [dts] [PATCH V1 06/12] tests/vf_l3fwd_kernelpf: add more test scenario yufengmx
@ 2021-03-15  5:50 ` yufengmx
  2021-03-15  5:50 ` [dts] [PATCH V1 08/12] tests/vf_l3fwd_lpm_ipv4_kernelpf: script yufengmx
                   ` (4 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: yufengmx @ 2021-03-15  5:50 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..960886a5
--- /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] 13+ messages in thread

* [dts] [PATCH V1 08/12] tests/vf_l3fwd_lpm_ipv4_kernelpf: script
  2021-03-15  5:50 [dts] [PATCH V1 00/12] vf_l3fwd_kernelpf: add more test scenario yufengmx
                   ` (6 preceding siblings ...)
  2021-03-15  5:50 ` [dts] [PATCH V1 07/12] conf/vf_l3fwd_lpm_ipv4_kernelpf: configuration yufengmx
@ 2021-03-15  5:50 ` yufengmx
  2021-03-15  5:50 ` [dts] [PATCH V1 09/12] conf/vf_l3fwd_lpm_ipv4_rfc2544_kernelpf: configuration yufengmx
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: yufengmx @ 2021-03-15  5:50 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] 13+ messages in thread

* [dts] [PATCH V1 09/12] conf/vf_l3fwd_lpm_ipv4_rfc2544_kernelpf: configuration
  2021-03-15  5:50 [dts] [PATCH V1 00/12] vf_l3fwd_kernelpf: add more test scenario yufengmx
                   ` (7 preceding siblings ...)
  2021-03-15  5:50 ` [dts] [PATCH V1 08/12] tests/vf_l3fwd_lpm_ipv4_kernelpf: script yufengmx
@ 2021-03-15  5:50 ` yufengmx
  2021-03-15  5:50 ` [dts] [PATCH V1 10/12] tests/vf_l3fwd_lpm_ipv4_rfc2544_kernelpf: script yufengmx
                   ` (2 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: yufengmx @ 2021-03-15  5:50 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..6e526693
--- /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] 13+ messages in thread

* [dts] [PATCH V1 10/12] tests/vf_l3fwd_lpm_ipv4_rfc2544_kernelpf: script
  2021-03-15  5:50 [dts] [PATCH V1 00/12] vf_l3fwd_kernelpf: add more test scenario yufengmx
                   ` (8 preceding siblings ...)
  2021-03-15  5:50 ` [dts] [PATCH V1 09/12] conf/vf_l3fwd_lpm_ipv4_rfc2544_kernelpf: configuration yufengmx
@ 2021-03-15  5:50 ` yufengmx
  2021-03-15  5:50 ` [dts] [PATCH V1 11/12] conf/vf_l3fwd_lpm_ipv6_kernelpf: configuration yufengmx
  2021-03-15  5:50 ` [dts] [PATCH V1 12/12] tests/vf_l3fwd_lpm_ipv6_kernelpf: script yufengmx
  11 siblings, 0 replies; 13+ messages in thread
From: yufengmx @ 2021-03-15  5:50 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] 13+ messages in thread

* [dts] [PATCH V1 11/12] conf/vf_l3fwd_lpm_ipv6_kernelpf: configuration
  2021-03-15  5:50 [dts] [PATCH V1 00/12] vf_l3fwd_kernelpf: add more test scenario yufengmx
                   ` (9 preceding siblings ...)
  2021-03-15  5:50 ` [dts] [PATCH V1 10/12] tests/vf_l3fwd_lpm_ipv4_rfc2544_kernelpf: script yufengmx
@ 2021-03-15  5:50 ` yufengmx
  2021-03-15  5:50 ` [dts] [PATCH V1 12/12] tests/vf_l3fwd_lpm_ipv6_kernelpf: script yufengmx
  11 siblings, 0 replies; 13+ messages in thread
From: yufengmx @ 2021-03-15  5:50 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..90440fab
--- /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] 13+ messages in thread

* [dts] [PATCH V1 12/12] tests/vf_l3fwd_lpm_ipv6_kernelpf: script
  2021-03-15  5:50 [dts] [PATCH V1 00/12] vf_l3fwd_kernelpf: add more test scenario yufengmx
                   ` (10 preceding siblings ...)
  2021-03-15  5:50 ` [dts] [PATCH V1 11/12] conf/vf_l3fwd_lpm_ipv6_kernelpf: configuration yufengmx
@ 2021-03-15  5:50 ` yufengmx
  11 siblings, 0 replies; 13+ messages in thread
From: yufengmx @ 2021-03-15  5:50 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] 13+ messages in thread

end of thread, other threads:[~2021-03-15  5:57 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-15  5:50 [dts] [PATCH V1 00/12] vf_l3fwd_kernelpf: add more test scenario yufengmx
2021-03-15  5:50 ` [dts] [PATCH V1 01/12] conf/vf_l3fwd_base: add more flows yufengmx
2021-03-15  5:50 ` [dts] [PATCH V1 02/12] tests/perf_test_base: extend vf l3fwd content yufengmx
2021-03-15  5:50 ` [dts] [PATCH V1 03/12] conf/vf_l3fwd_em_kernelpf: configuration yufengmx
2021-03-15  5:50 ` [dts] [PATCH V1 04/12] tests/vf_l3fwd_em_kernelpf: script yufengmx
2021-03-15  5:50 ` [dts] [PATCH V1 05/12] conf/vf_l3fwd_kernelpf: configuration yufengmx
2021-03-15  5:50 ` [dts] [PATCH V1 06/12] tests/vf_l3fwd_kernelpf: add more test scenario yufengmx
2021-03-15  5:50 ` [dts] [PATCH V1 07/12] conf/vf_l3fwd_lpm_ipv4_kernelpf: configuration yufengmx
2021-03-15  5:50 ` [dts] [PATCH V1 08/12] tests/vf_l3fwd_lpm_ipv4_kernelpf: script yufengmx
2021-03-15  5:50 ` [dts] [PATCH V1 09/12] conf/vf_l3fwd_lpm_ipv4_rfc2544_kernelpf: configuration yufengmx
2021-03-15  5:50 ` [dts] [PATCH V1 10/12] tests/vf_l3fwd_lpm_ipv4_rfc2544_kernelpf: script yufengmx
2021-03-15  5:50 ` [dts] [PATCH V1 11/12] conf/vf_l3fwd_lpm_ipv6_kernelpf: configuration yufengmx
2021-03-15  5:50 ` [dts] [PATCH V1 12/12] tests/vf_l3fwd_lpm_ipv6_kernelpf: script yufengmx

test suite reviews and discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://inbox.dpdk.org/dts/0 dts/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dts dts/ https://inbox.dpdk.org/dts \
		dts@dpdk.org
	public-inbox-index dts

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.dts


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git