test suite reviews and discussions
 help / color / mirror / Atom feed
* [DTS][PATCH V1 0/3] add new test suite ice_config_port_speed
@ 2023-07-17  6:52 Jin Ling
  2023-07-17  6:52 ` [DTS][PATCH V1 1/3] test_plan/ice_config_port_speed: add new test plan Jin Ling
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Jin Ling @ 2023-07-17  6:52 UTC (permalink / raw)
  To: dts; +Cc: Jin Ling

This suite provides the function for configuring the port speed function in testpmd
You can get the link speed supported of the NIC by executing `ethtool <iface>`, only the supported speed can be configured,
if its' link partner also supports this speed, then once the speed of the dut is reconfigured,
the link partner's speed will also be configured.

Jin Ling (3):
  test_plan/ice_config_port_speed: add new test plan
  tests/ice_config_port_speed: add new test cases
  test_plans/index: add new test_suite

 .../ice_config_port_speed_test_plan.rst       | 141 ++++++++++++++++++
 test_plans/index.rst                          |   1 +
 tests/TestSuite_ice_config_port_speed.py      |  63 ++++++++
 3 files changed, 205 insertions(+)
 create mode 100644 test_plans/ice_config_port_speed_test_plan.rst
 create mode 100644 tests/TestSuite_ice_config_port_speed.py

--
2.25.1

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [DTS][PATCH V1 1/3] test_plan/ice_config_port_speed: add new test plan
  2023-07-17  6:52 [DTS][PATCH V1 0/3] add new test suite ice_config_port_speed Jin Ling
@ 2023-07-17  6:52 ` Jin Ling
  2023-07-17  6:52 ` [DTS][PATCH V1 2/3] tests/ice_config_port_speed: add new test cases Jin Ling
  2023-07-17  6:52 ` [DTS][PATCH V1 3/3] test_plans/index: add new test_suite Jin Ling
  2 siblings, 0 replies; 4+ messages in thread
From: Jin Ling @ 2023-07-17  6:52 UTC (permalink / raw)
  To: dts; +Cc: Jin Ling

Signed-off-by: Jin Ling <jin.ling@intel.com>
---
 .../ice_config_port_speed_test_plan.rst       | 141 ++++++++++++++++++
 1 file changed, 141 insertions(+)
 create mode 100644 test_plans/ice_config_port_speed_test_plan.rst

diff --git a/test_plans/ice_config_port_speed_test_plan.rst b/test_plans/ice_config_port_speed_test_plan.rst
new file mode 100644
index 00000000..afb13896
--- /dev/null
+++ b/test_plans/ice_config_port_speed_test_plan.rst
@@ -0,0 +1,141 @@
+.. Copyright (c) <2022-2023>, Intel Corporation
+   All rights reserved.
+
+===========================
+ICE Config Port Speed Tests
+===========================
+
+Description
+===========
+
+This document provides the testplan for configuring the port speed function in testpmd
+You can get the link speed supported of the NIC by executing `ethtool <iface>`, only the supported speed can be configured,
+if its' link partner also supports this speed, then once the speed of the dut is reconfigured, the link partner's speed will also be configured
+
+
+Prerequisites
+=============
+
+topology
+--------
+
+dut_port_0 <-----------> tester_port_0
+
+
+Hardware
+--------
+
+Supported NICs: columbiaville_25g/columbiaville_100g
+
+Software
+--------
+
+dpdk: http://dpdk.org/git/dpdk
+scapy: http://www.secdev.org/projects/scapy/
+
+General set up
+--------------
+
+1. Compile DPDK::
+
+    CC=gcc meson --werror -Denable_kmods=True -Dlibdir=lib --default-library=static x86_64-native-linuxapp-gcc
+    ninja -C x86_64-native-linuxapp-gcc -j 110
+
+2. Get the pci device id of DUT, for example::
+
+    ./usertools/dpdk-devbind.py -s
+
+    0000:31:00.0 'Device 159b' if=ens4 drv=ice unused=vfio-pci
+
+3. Get the supported speed of dut and tester::
+
+    Dut::
+        ethtool ens785f0:
+        Settings for ens785f0:
+        Supported ports: [ FIBRE ]
+        Supported link modes:   1000baseT/Full
+                                10000baseT/Full
+                                25000baseCR/Full
+                                25000baseSR/Full
+                                1000baseX/Full
+                                10000baseSR/Full
+                                10000baseLR/Full
+        Supported pause frame use: Symmetric
+        Supports auto-negotiation: Yes
+        Supported FEC modes: None
+        Advertised link modes:  1000baseX/Full
+                                10000baseSR/Full
+
+    tester::
+        ethtool ens260f0
+        Settings for ens260f0:
+        Supported ports: [ FIBRE ]
+        Supported link modes:   1000baseX/Full
+                                10000baseSR/Full
+        Supported pause frame use: Symmetric Receive-only
+        Supports auto-negotiation: Yes
+        Supported FEC modes: Not reported
+        Advertised link modes:  1000baseX/Full
+                                10000baseSR/Full
+        Advertised pause frame use: No
+        Advertised auto-negotiation: Yes
+
+    Notice that the link speed of dut cannot be configured when dut is `link down`,
+    so if dut is `link up` , only `Advertised link modes` can be cofigured.
+
+
+Test case 1: port config link speed
+-------------------------------------
+
+In this test case, use `port config <port_id> speed 10|100|1000|10000|25000|40000|50000|100000|200000|400000|auto duplex half|full|auto`
+to set port speed, then use `show port info <port_id>` can see the new speed and duplex.
+
+test steps
+~~~~~~~~~~
+1. launch testpmd::
+
+    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c f -n 4 -a 31:00.0 -- -i
+
+2. make sure that the link status of dut is up::
+
+    testpmd> show port info 0
+    ********************* Infos for port 0  *********************
+    MAC address: B4:96:91:BB:64:D8
+    Device name: 31:00.0
+    Driver name: net_ice
+    Firmware-version: 4.20 0x8001642c 1.3341.0
+    Devargs:
+    Connect to socket: 0
+    memory allocation on the socket: 0
+    *Link status: up
+    Link speed: 100 Gbps*
+    Link duplex: full-duplex
+    Autoneg status: On
+
+3. stop all ports and set new speed::
+
+    testpmd> port stop all
+    testpmd> port config 0 speed 1000|100000 duplex full
+    testpmd> port start all
+
+Expected result
+~~~~~~~~~~~~~~~
+
+    1. Check that the speed has been changed::
+
+        testpmd> show port info all
+
+        ********************* Infos for port 0  *********************
+        ...
+        Link speed: 10 Gbps
+        Link duplex: full-duplex
+        ...
+
+    2. check tester's has been changed if it supports this spped::
+
+        ethtool ens10:
+        Settings for ens10:
+            ...
+            Speed: 10000Mb/s
+            Duplex: Full
+            ...
--
2.25.1

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [DTS][PATCH V1 2/3] tests/ice_config_port_speed: add new test cases
  2023-07-17  6:52 [DTS][PATCH V1 0/3] add new test suite ice_config_port_speed Jin Ling
  2023-07-17  6:52 ` [DTS][PATCH V1 1/3] test_plan/ice_config_port_speed: add new test plan Jin Ling
@ 2023-07-17  6:52 ` Jin Ling
  2023-07-17  6:52 ` [DTS][PATCH V1 3/3] test_plans/index: add new test_suite Jin Ling
  2 siblings, 0 replies; 4+ messages in thread
From: Jin Ling @ 2023-07-17  6:52 UTC (permalink / raw)
  To: dts; +Cc: Jin Ling

Signed-off-by: Jin Ling <jin.ling@intel.com>
---
 tests/TestSuite_ice_config_port_speed.py | 63 ++++++++++++++++++++++++
 1 file changed, 63 insertions(+)
 create mode 100644 tests/TestSuite_ice_config_port_speed.py

diff --git a/tests/TestSuite_ice_config_port_speed.py b/tests/TestSuite_ice_config_port_speed.py
new file mode 100644
index 00000000..bc7b38de
--- /dev/null
+++ b/tests/TestSuite_ice_config_port_speed.py
@@ -0,0 +1,63 @@
+import copy
+import os
+import re
+import time
+from framework.settings import *
+import framework.utils as utils
+import tests.rte_flow_common as rfc
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase, skip_unsupported_pkg
+from framework.utils import GREEN, RED
+
+class ConfigPortSpeed(TestCase):
+    def set_up_all(self):
+        """
+        Run at the start of each test suite.
+        """
+        self.dut_ports = self.dut.get_ports(self.nic)
+        self.pmdout = PmdOutput(self.dut)
+        # Get the Supported Speed list.
+    def set_up(args):
+        pass
+    def tear_down(args):
+        pass
+    def tear_down_all(self):
+        self.dut.kill_all()
+
+    def test_ice_config_port_speed(self):
+        # bind ice driver
+
+        # self.tester_kdriver = get_nic_driver(self.tester.ports_info[0]["type"])
+        self.pmdout.execute_cmd(f"./usertools/dpdk-devbind.py --force -b={self.kdriver} {self.dut.ports_info[0]['pci']}","#")
+        # self.pmdout.execute_cmd(f"./usertools/dpdk-devbind.py --force -b={self.drivername} {self.dut.ports_info[0]['peer']}","#")
+        link_speed = []
+        out = self.pmdout.execute_cmd(f"ethtool {self.dut.ports_info[0]['intf']}","#")
+        link_modes= re.findall('Advertised link modes: (.*)Advertised pause frame use',repr(out))
+        for line in link_modes[0].split(r"\r\n\t"):
+            if line !="":
+                line = line.strip().split("/")
+                speed = re.findall("(\w*)base",line[0])[0]
+                duplex= line[1]
+                link_speed.append((speed,duplex))
+
+        link_speed = list(set(link_speed))
+        # launch testpmd
+        self.pmdout.execute_cmd(f"./usertools/dpdk-devbind.py --force -b={self.drivername} {self.dut.ports_info[0]['pci']}","#")
+        # self.pmdout.execute_cmd(f"./usertools/dpdk-devbind.py --force -b={self.kdriver} {self.dut.ports_info[0]['peer']}","#")
+        self.pmdout.start_testpmd("Default")
+
+        # make sure link speed is up
+        self.verify(self.pmdout.get_port_link_status(self.dut_ports[0])=="up","link is down, cannot set link speed")
+        for item in link_speed:
+            self.pmdout.execute_cmd("port stop all")
+            self.pmdout.execute_cmd(f"port config {self.dut_ports[0]} speed {item[0]} duplex {item[1].lower()}")
+            self.pmdout.execute_cmd("port start all")
+            self.pmdout.wait_link_status_up(self.dut_ports[0],timeout=30)
+            # port_info = self.pmdout.execute_cmd(f"show port info {self.dut_ports[0]}")
+            changed_link_speed = self.pmdout.get_port_link_speed(self.dut_ports[0])
+            change_link_duplex = self.pmdout.get_port_link_duplex(self.dut_ports[0])
+
+            self.verify(int(changed_link_speed) == eval(item[0])//1000
+                        and item[1].lower() in change_link_duplex,
+                        "link speed mode not changed")
--
2.25.1

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [DTS][PATCH V1 3/3] test_plans/index: add new test_suite
  2023-07-17  6:52 [DTS][PATCH V1 0/3] add new test suite ice_config_port_speed Jin Ling
  2023-07-17  6:52 ` [DTS][PATCH V1 1/3] test_plan/ice_config_port_speed: add new test plan Jin Ling
  2023-07-17  6:52 ` [DTS][PATCH V1 2/3] tests/ice_config_port_speed: add new test cases Jin Ling
@ 2023-07-17  6:52 ` Jin Ling
  2 siblings, 0 replies; 4+ messages in thread
From: Jin Ling @ 2023-07-17  6:52 UTC (permalink / raw)
  To: dts; +Cc: Jin Ling

Signed-off-by: Jin Ling <jin.ling@intel.com>
---
 test_plans/index.rst | 1 +
 1 file changed, 1 insertion(+)

diff --git a/test_plans/index.rst b/test_plans/index.rst
index 2ac4850d..beb1657e 100644
--- a/test_plans/index.rst
+++ b/test_plans/index.rst
@@ -57,6 +57,7 @@ The following are the test plans for the DPDK DTS automated test system.
     ice_vf_support_multicast_address_test_plan
     ice_rss_protocol_agnostic_flow_test_plan
     ice_fdir_protocol_agnostic_flow_test_plan
+    ice_config_port_speed_test_plan
     cloud_filter_with_l4_port_test_plan
     dcf_lifecycle_test_plan
     crypto_perf_cryptodev_perf_test_plan
--
2.25.1

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-07-17  6:53 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-07-17  6:52 [DTS][PATCH V1 0/3] add new test suite ice_config_port_speed Jin Ling
2023-07-17  6:52 ` [DTS][PATCH V1 1/3] test_plan/ice_config_port_speed: add new test plan Jin Ling
2023-07-17  6:52 ` [DTS][PATCH V1 2/3] tests/ice_config_port_speed: add new test cases Jin Ling
2023-07-17  6:52 ` [DTS][PATCH V1 3/3] test_plans/index: add new test_suite Jin Ling

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).