test suite reviews and discussions
 help / color / mirror / Atom feed
* [dts][PATCH V2 1/8] test_plans/vlan: modify script and test plan to support i40e fimware > 8.3
@ 2022-11-10  5:33 Weiyuan Li
  2022-11-10  5:33 ` [dts][PATCH V2 2/8] tests/vlan_ethertype_config: " Weiyuan Li
                   ` (6 more replies)
  0 siblings, 7 replies; 9+ messages in thread
From: Weiyuan Li @ 2022-11-10  5:33 UTC (permalink / raw)
  To: dts, lijuan.tu; +Cc: Weiyuan Li

Modify script and test plan to i40e support fimware > 8.3.
When the fimrware > 8.3, if the filter is to take effect need to enable
extend.

Signed-off-by: Weiyuan Li <weiyuanx.li@intel.com>
---

v2:
-use the firmware version to judge whether to add command `extend on`.

 test_plans/vlan_ethertype_config_test_plan.rst | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/test_plans/vlan_ethertype_config_test_plan.rst b/test_plans/vlan_ethertype_config_test_plan.rst
index 80a6ee28..de4bccac 100644
--- a/test_plans/vlan_ethertype_config_test_plan.rst
+++ b/test_plans/vlan_ethertype_config_test_plan.rst
@@ -52,6 +52,9 @@ Test Case 2: test VLAN filtering on/off
       testpmd> vlan set filter on 0
       testpmd> start
 
+      if the i40e firmware version >= 8.4 the dpdk can only add 'extend on' to make the single VLAN filter work normally:
+      testpmd> vlan set extend on 0
+
 2. Send 1 packet with VLAN TPID 0xA100 and VLAN Tag 16 on port ``A``,
    Verify that the VLAN packet cannot be received in port ``B``.
 
@@ -77,6 +80,9 @@ Test Case 3: test adding VLAN Tag Identifier with changing VLAN TPID
       testpmd> vlan set strip off 0
       testpmd> start
 
+      if the i40e firmware version >= 8.4 the dpdk can only add 'extend on' to make the single VLAN filter work normally:
+      testpmd> vlan set extend on 0
+
 2. Add a VLAN Tag Identifier ``16`` on port ``0``::
 
       testpmd> rx_vlan add 16 0
-- 
2.27.0


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

* [dts][PATCH V2 2/8] tests/vlan_ethertype_config: modify script and test plan to support i40e fimware > 8.3
  2022-11-10  5:33 [dts][PATCH V2 1/8] test_plans/vlan: modify script and test plan to support i40e fimware > 8.3 Weiyuan Li
@ 2022-11-10  5:33 ` Weiyuan Li
  2022-11-10  5:33 ` [dts][PATCH V2 3/8] test_plans/vlan: " Weiyuan Li
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 9+ messages in thread
From: Weiyuan Li @ 2022-11-10  5:33 UTC (permalink / raw)
  To: dts, lijuan.tu; +Cc: Weiyuan Li

Modify script and test plan to i40e support fimware > 8.3.
When the fimrware > 8.3, if the filter is to take effect need to enable
extend.

Signed-off-by: Weiyuan Li <weiyuanx.li@intel.com>
---

v2:
-use the firmware version to judge whether to add command `extend on`.

 tests/TestSuite_vlan_ethertype_config.py | 25 +++++++++++++++++++++++-
 1 file changed, 24 insertions(+), 1 deletion(-)

diff --git a/tests/TestSuite_vlan_ethertype_config.py b/tests/TestSuite_vlan_ethertype_config.py
index b641d928..95062f91 100644
--- a/tests/TestSuite_vlan_ethertype_config.py
+++ b/tests/TestSuite_vlan_ethertype_config.py
@@ -56,6 +56,17 @@ class TestVlanEthertypeConfig(TestCase):
         """
         self.pmdout = PmdOutput(self.dut)
         self.pmdout.start_testpmd("Default", "--portmask=%s" % self.portmask)
+        # Get the firmware version information
+        try:
+            self.fwversion, _, _ = self.pmdout.get_firmware_version(
+                self.dut.get_ports()[0]
+            ).split()
+        except ValueError:
+            # nic IXGBE, IGC
+            self.fwversion = self.pmdout.get_firmware_version(
+                self.dut.get_ports()[0]
+            ).split()
+
         if self.kdriver == "i40e":
             self.dut.send_expect("set promisc all off", "testpmd> ")
 
@@ -194,6 +205,12 @@ class TestVlanEthertypeConfig(TestCase):
                 self.dut.send_expect(
                     "vlan set filter on  %s" % dutRxPortId, "testpmd> "
                 )
+                # Because the kernel forces enable Qinq and cannot be closed,
+                # the dpdk can only add 'extend on' to make the single VLAN filter work normally.
+                if self.kdriver == "i40e" and self.fwversion >= "8.40":
+                    self.dut.send_expect(
+                        "vlan set extend on %s" % dutRxPortId, "testpmd> "
+                    )
                 self.dut.send_expect("start", "testpmd> ")
                 self.check_vlan_packets(rx_vlan, tpid, self.rxItf, False)
                 # test vlan filter off
@@ -209,8 +226,12 @@ class TestVlanEthertypeConfig(TestCase):
         random_vlan = random.randint(1, MAX_VLAN - 1)
         rx_vlans = [1, random_vlan, MAX_VLAN]
         self.dut.send_expect("set fwd mac", "testpmd> ")
-        self.dut.send_expect("vlan set filter on  %s" % dutRxPortId, "testpmd> ")
+        self.dut.send_expect("vlan set filter on %s" % dutRxPortId, "testpmd> ")
         self.dut.send_expect("vlan set strip off %s" % dutRxPortId, "testpmd> ", 20)
+        # Because the kernel forces enable Qinq and cannot be closed,
+        # the dpdk can only add 'extend on' to make the single VLAN filter work normally.
+        if self.kdriver == "i40e" and self.fwversion >= "8.40":
+            self.dut.send_expect("vlan set extend on %s" % dutRxPortId, "testpmd> ")
         self.dut.send_expect("start", "testpmd> ")
 
         # caium_a063 card support only default '0x8100' tpid in rx mode
@@ -359,6 +380,8 @@ class TestVlanEthertypeConfig(TestCase):
         """
         Run after each test case.
         """
+        if self.kdriver == "i40e" and self.fwversion >= "8.40":
+            self.dut.send_expect("vlan set extend off %s" % dutRxPortId, "testpmd> ")
         self.dut.send_expect("stop", "testpmd> ", 30)
         self.dut.send_expect("quit", "# ", 30)
         pass
-- 
2.27.0


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

* [dts][PATCH V2 3/8] test_plans/vlan: modify script and test plan to support i40e fimware > 8.3
  2022-11-10  5:33 [dts][PATCH V2 1/8] test_plans/vlan: modify script and test plan to support i40e fimware > 8.3 Weiyuan Li
  2022-11-10  5:33 ` [dts][PATCH V2 2/8] tests/vlan_ethertype_config: " Weiyuan Li
@ 2022-11-10  5:33 ` Weiyuan Li
  2022-11-10  5:33 ` [dts][PATCH V2 4/8] tests/vlan: " Weiyuan Li
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 9+ messages in thread
From: Weiyuan Li @ 2022-11-10  5:33 UTC (permalink / raw)
  To: dts, lijuan.tu; +Cc: Weiyuan Li

Modify script and test plan to i40e support fimware > 8.3.
When the fimrware > 8.3, if the filter is to take effect need to enable
extend.

Signed-off-by: Weiyuan Li <weiyuanx.li@intel.com>
---

v2:
-use the firmware version to judge whether to add command `extend on`.

 test_plans/vlan_test_plan.rst | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/test_plans/vlan_test_plan.rst b/test_plans/vlan_test_plan.rst
index 6e2bf74e..442e4efe 100644
--- a/test_plans/vlan_test_plan.rst
+++ b/test_plans/vlan_test_plan.rst
@@ -61,6 +61,10 @@ Enable the receipt of VLAN packets with VLAN Tag Identifier 1 on port 0::
 
   testpmd> rx_vlan add 1 0
   testpmd> vlan set strip off 0
+  
+  if the i40e firmware version >= 8.4 the dpdk can only add 'extend on' to make the single VLAN filter work normally:
+  testpmd> vlan set extend on 0
+  
   testpmd> start
     rxonly packet forwarding - CRC stripping disabled - packets/burst=32
     nb forwarding cores=1 - nb forwarding ports=10
@@ -111,7 +115,10 @@ Test Case: Disable receipt of VLAN packets
 Disable the receipt of VLAN packets with Tag Identifier ``1`` on port 0.
 Send VLAN packets with the Tag Identifier ``1`` check that no packet is received
 on port ``B``, meaning that VLAN packets are now dropped on port 0::
-
+  
+  if the i40e firmware version >= 8.4 the dpdk can only add 'extend on' to make the single VLAN filter work normally:
+  testpmd> vlan set extend on 0
+  
   testpmd> rx_vlan rm 1 0
   testpmd> start
   rxonly packet forwarding - CRC stripping disabled - packets/burst=32
-- 
2.27.0


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

* [dts][PATCH V2 4/8] tests/vlan: modify script and test plan to support i40e fimware > 8.3
  2022-11-10  5:33 [dts][PATCH V2 1/8] test_plans/vlan: modify script and test plan to support i40e fimware > 8.3 Weiyuan Li
  2022-11-10  5:33 ` [dts][PATCH V2 2/8] tests/vlan_ethertype_config: " Weiyuan Li
  2022-11-10  5:33 ` [dts][PATCH V2 3/8] test_plans/vlan: " Weiyuan Li
@ 2022-11-10  5:33 ` Weiyuan Li
  2022-11-10  5:33 ` [dts][PATCH V2 5/8] test_plans/ipgre: " Weiyuan Li
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 9+ messages in thread
From: Weiyuan Li @ 2022-11-10  5:33 UTC (permalink / raw)
  To: dts, lijuan.tu; +Cc: Weiyuan Li

Modify script and test plan to i40e support fimware > 8.3.
When the fimrware > 8.3, if the filter is to take effect need to enable
extend.

Signed-off-by: Weiyuan Li <weiyuanx.li@intel.com>
---

v2:
-use the firmware version to judge whether to add command `extend on`.

 tests/TestSuite_vlan.py | 20 ++++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)

diff --git a/tests/TestSuite_vlan.py b/tests/TestSuite_vlan.py
index 3d8811f9..c2240c30 100644
--- a/tests/TestSuite_vlan.py
+++ b/tests/TestSuite_vlan.py
@@ -48,7 +48,14 @@ class TestVlan(TestCase):
         self.pmdout.start_testpmd(
             "Default", "--portmask=%s --port-topology=loop" % portMask
         )
-
+        # Get the firmware version information
+        try:
+            self.fwversion, _, _ = self.pmdout.get_firmware_version(
+                self.dut_ports[0]
+            ).split()
+        except ValueError:
+            # nic IXGBE, IGC
+            self.fwversion = self.pmdout.get_firmware_version(self.dut_ports[0]).split()
         self.dut.send_expect("set verbose 1", "testpmd> ")
         self.dut.send_expect("set fwd mac", "testpmd> ")
         self.dut.send_expect("set promisc all off", "testpmd> ")
@@ -105,6 +112,10 @@ class TestVlan(TestCase):
         self.dut.send_expect(
             "rx_vlan add %d %s" % (self.vlan, dutRxPortId), "testpmd> "
         )
+        # Because the kernel forces enable Qinq and cannot be closed,
+        # the dpdk can only add 'extend on' to make the single VLAN filter work normally.
+        if self.kdriver == "i40e" and self.fwversion >= "8.40":
+            self.dut.send_expect("vlan set extend on %s" % dutRxPortId, "testpmd> ")
         self.dut.send_expect("vlan set strip off  %s" % dutRxPortId, "testpmd> ")
         self.dut.send_expect("start", "testpmd> ", 120)
         out = self.dut.send_expect("show port info %s" % dutRxPortId, "testpmd> ", 20)
@@ -127,6 +138,10 @@ class TestVlan(TestCase):
         Disable receipt of VLAN packets
         """
         self.dut.send_expect("rx_vlan rm %d %s" % (self.vlan, dutRxPortId), "testpmd> ")
+        # Because the kernel forces enable Qinq and cannot be closed,
+        # the dpdk can only add 'extend on' to make the single VLAN filter work normally.
+        if self.kdriver == "i40e" and self.fwversion >= "8.40":
+            self.dut.send_expect("vlan set extend on %s" % dutRxPortId, "testpmd> ")
         self.dut.send_expect("start", "testpmd> ", 120)
         self.vlan_send_packet(self.vlan)
 
@@ -187,7 +202,8 @@ class TestVlan(TestCase):
         """
         Run after each test case.
         """
-        pass
+        if self.kdriver == "i40e" and self.fwversion >= "8.40":
+            self.dut.send_expect("vlan set extend off %s" % dutRxPortId, "testpmd> ")
 
     def tear_down_all(self):
         """
-- 
2.27.0


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

* [dts][PATCH V2 5/8] test_plans/ipgre: modify script and test plan to support i40e fimware > 8.3
  2022-11-10  5:33 [dts][PATCH V2 1/8] test_plans/vlan: modify script and test plan to support i40e fimware > 8.3 Weiyuan Li
                   ` (2 preceding siblings ...)
  2022-11-10  5:33 ` [dts][PATCH V2 4/8] tests/vlan: " Weiyuan Li
@ 2022-11-10  5:33 ` Weiyuan Li
  2022-11-10  5:33 ` [dts][PATCH V2 6/8] tests/ipgre: " Weiyuan Li
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 9+ messages in thread
From: Weiyuan Li @ 2022-11-10  5:33 UTC (permalink / raw)
  To: dts, lijuan.tu; +Cc: Weiyuan Li

Modify script and test plan to i40e support fimware > 8.3.
When the fimrware > 8.3, if the filter is to take effect need to enable
extend.

Signed-off-by: Weiyuan Li <weiyuanx.li@intel.com>
---

v2:
-use the firmware version to judge whether to add command `extend on`.

 test_plans/ipgre_test_plan.rst | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/test_plans/ipgre_test_plan.rst b/test_plans/ipgre_test_plan.rst
index 693432ef..f44628f7 100644
--- a/test_plans/ipgre_test_plan.rst
+++ b/test_plans/ipgre_test_plan.rst
@@ -58,6 +58,9 @@ Start testpmd and enable rxonly forwarding mode::
     testpmd> set verbose 1
     testpmd> start
 
+    if the i40e firmware version >= 8.4 the dpdk can only add 'extend on' to make the single VLAN filter work normally:
+    testpmd> vlan set extend on 0
+
 Send packet as table listed and packet type match each layer::
 
    Ether()/IPv6(nh=47)/GRE()/IP()/UDP()/Raw('x'*40)
-- 
2.27.0


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

* [dts][PATCH V2 6/8] tests/ipgre: modify script and test plan to support i40e fimware > 8.3
  2022-11-10  5:33 [dts][PATCH V2 1/8] test_plans/vlan: modify script and test plan to support i40e fimware > 8.3 Weiyuan Li
                   ` (3 preceding siblings ...)
  2022-11-10  5:33 ` [dts][PATCH V2 5/8] test_plans/ipgre: " Weiyuan Li
@ 2022-11-10  5:33 ` Weiyuan Li
  2022-11-10  5:33 ` [dts][PATCH V2 7/8] test_plans/dual_vlan: " Weiyuan Li
  2022-11-10  5:33 ` [dts][PATCH V2 8/8] tests/dual_vlan: " Weiyuan Li
  6 siblings, 0 replies; 9+ messages in thread
From: Weiyuan Li @ 2022-11-10  5:33 UTC (permalink / raw)
  To: dts, lijuan.tu; +Cc: Weiyuan Li

Modify script and test plan to i40e support fimware > 8.3.
When the fimrware > 8.3, if the filter is to take effect need to enable
extend.

Signed-off-by: Weiyuan Li <weiyuanx.li@intel.com>
---

v2:
-use the firmware version to judge whether to add command `extend on`.

 tests/TestSuite_ipgre.py | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/tests/TestSuite_ipgre.py b/tests/TestSuite_ipgre.py
index cd50c1c4..c9371678 100644
--- a/tests/TestSuite_ipgre.py
+++ b/tests/TestSuite_ipgre.py
@@ -309,9 +309,22 @@ class TestIpgre(TestCase):
                 socket=self.ports_socket,
             )
 
+        # Get the firmware version information
+        try:
+            fwversion, _, _ = self.pmdout.get_firmware_version(
+                self.dut_ports[0]
+            ).split()
+        except ValueError:
+            # nic IXGBE, IGC
+            fwversion = self.pmdout.get_firmware_version(self.dut_ports[0]).split()
+
         self.dut.send_expect("set fwd rxonly", "testpmd>")
         self.dut.send_expect("set verbose 1", "testpmd>")
         self.dut.send_expect("start", "testpmd>")
+        # Because the kernel forces enable Qinq and cannot be closed,
+        # the dpdk can only add 'extend on' to make the single VLAN filter work normally.
+        if self.kdriver == "i40e" and fwversion >= "8.40":
+            self.dut.send_expect("vlan set extend off 0", "testpmd>")
 
         # inner ipv4
         config_layers = {
-- 
2.27.0


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

* [dts][PATCH V2 7/8] test_plans/dual_vlan: modify script and test plan to support i40e fimware > 8.3
  2022-11-10  5:33 [dts][PATCH V2 1/8] test_plans/vlan: modify script and test plan to support i40e fimware > 8.3 Weiyuan Li
                   ` (4 preceding siblings ...)
  2022-11-10  5:33 ` [dts][PATCH V2 6/8] tests/ipgre: " Weiyuan Li
@ 2022-11-10  5:33 ` Weiyuan Li
  2022-11-10  5:33 ` [dts][PATCH V2 8/8] tests/dual_vlan: " Weiyuan Li
  6 siblings, 0 replies; 9+ messages in thread
From: Weiyuan Li @ 2022-11-10  5:33 UTC (permalink / raw)
  To: dts, lijuan.tu; +Cc: Weiyuan Li

Modify script and test plan to i40e support fimware > 8.3.
When the fimrware > 8.3, if the filter is to take effect need to enable
extend.

Signed-off-by: Weiyuan Li <weiyuanx.li@intel.com>
---

v2:
-use the firmware version to judge whether to add command `extend on`.

 test_plans/dual_vlan_test_plan.rst | 73 ++++++++++++++++++++++++++++--
 1 file changed, 70 insertions(+), 3 deletions(-)

diff --git a/test_plans/dual_vlan_test_plan.rst b/test_plans/dual_vlan_test_plan.rst
index fab18515..a5bbeb8b 100644
--- a/test_plans/dual_vlan_test_plan.rst
+++ b/test_plans/dual_vlan_test_plan.rst
@@ -35,6 +35,10 @@ The -n command is used to select the number of memory channels. It should match
 Test Case: Enable/Disable VLAN packets filtering
 ================================================
 
+if the i40e firmware version >= 8.4 the dpdk can only add 'extend on' to make the single VLAN filter work normally::
+
+    testpmd> vlan set extend on 0
+
 Setup the ``mac`` forwarding mode::
 
     testpmd> set fwd mac
@@ -61,9 +65,7 @@ Check whether the mode is set successful::
     Allmulticast mode: disabled
     Maximum number of MAC addresses: 127
     VLAN offload:
-      strip off
-      filter on
-      qinq(extend) off
+        strip off, filter on, extend on, qinq strip off
 
 start forwarding packets::
 
@@ -112,6 +114,10 @@ Disable VLAN packet extend and strip port ``0``::
     testpmd> vlan set extend off 0
     testpmd> vlan set strip off 0
 
+if the i40e firmware version >= 8.4 the dpdk can only add 'extend on' to make the single VLAN filter work normally::
+
+    testpmd> vlan set extend on 0
+
 Enable VLAN filtering on port ``0``::
 
     testpmd> vlan set filter on 0
@@ -358,6 +364,67 @@ except insert are set on rx port).
 |  0x1  |  0x2  |  yes   |  yes,0x2   |  yes   |  yes   | pass  |  0x3  |  0x1  |
 +-------+-------+--------+------------+--------+--------+-------+-------+-------+
 
+Do the synthetic test according to the following table, if the i40e firmware >= 8.4.
+
++-------+-------+--------+------------+--------+--------+-------+-------+-------+
+| Outer | Inner |  Vlan  |   Vlan     | Vlan   | Vlan   | Pass/ | Outer | Inner |
+| vlan  | vlan  |  strip |   filter   | extend | insert | Drop  | vlan  | vlan  |
++-------+-------+--------+------------+--------+--------+-------+-------+-------+
+|  0x1  |  0x2  |   no   |     no     |   no   |   no   | pass  |  0x1  |  0x2  |
++-------+-------+--------+------------+--------+--------+-------+-------+-------+
+|  0x1  |  0x2  |  yes   |     no     |   no   |   no   | pass  |  no   |  0x2  |
++-------+-------+--------+------------+--------+--------+-------+-------+-------+
+|  0x1  |  0x2  |   no   |  yes,0x1   |   no   |   no   | pass  |  0x1  |  0x2  |
++-------+-------+--------+------------+--------+--------+-------+-------+-------+
+|  0x1  |  0x2  |   no   |  yes,0x2   |   no   |   no   | pass  |  0x1  |  0x2  |
++-------+-------+--------+------------+--------+--------+-------+-------+-------+
+|  0x1  |  0x2  |  yes   |  yes,0x1   |   no   |   no   | pass  |  no   |  0x2  |
++-------+-------+--------+------------+--------+--------+-------+-------+-------+
+|  0x1  |  0x2  |  yes   |  yes,0x2   |   no   |   no   | pass  |  no   |  0x2  |
++-------+-------+--------+------------+--------+--------+-------+-------+-------+
+|  0x1  |  0x2  |   no   |     no     |  yes   |   no   | pass  |  0x1  |  0x2  |
++-------+-------+--------+------------+--------+--------+-------+-------+-------+
+|  0x1  |  0x2  |  yes   |     no     |  yes   |   no   | pass  |  no   |  0x1  |
++-------+-------+--------+------------+--------+--------+-------+-------+-------+
+|  0x1  |  0x2  |   no   |  yes,0x1   |  yes   |   no   | pass  |  0x1  |  0x2  |
++-------+-------+--------+------------+--------+--------+-------+-------+-------+
+|  0x1  |  0x2  |   no   |  yes,0x2   |  yes   |   no   | drop  |  no   |   no  |
++-------+-------+--------+------------+--------+--------+-------+-------+-------+
+|  0x1  |  0x2  |  yes   |  yes,0x1   |  yes   |   no   | pass  |  no   |  0x1  |
++-------+-------+--------+------------+--------+--------+-------+-------+-------+
+|  0x1  |  0x2  |  yes   |  yes,0x2   |  yes   |   no   | drop  |  no   |  no   |
++-------+-------+--------+------------+--------+--------+-------+-------+-------+
+|  0x1  |  0x2  |   no   |     no     |   no   |  yes   | pass  |  0x3  |  0x1  |
+|       |       |        |            |        |        |       |       |  0x2  |
++-------+-------+--------+------------+--------+--------+-------+-------+-------+
+|  0x1  |  0x2  |  yes   |     no     |   no   |  yes   | pass  |  0x3  |  0x2  |
++-------+-------+--------+------------+--------+--------+-------+-------+-------+
+|  0x1  |  0x2  |   no   |  yes,0x1   |   no   |  yes   | pass  |  0x3  |  0x1  |
+|       |       |        |            |        |        |       |       |  0x2  |
++-------+-------+--------+------------+--------+--------+-------+-------+-------+
+|  0x1  |  0x2  |   no   |  yes,0x2   |   no   |  yes   | pass  |  0x3  |  0x1  |
+|       |       |        |            |        |        |       |       |  0x2  |
++-------+-------+--------+------------+--------+--------+-------+-------+-------+
+|  0x1  |  0x2  |  yes   |  yes,0x1   |   no   |  yes   | pass  |  0x3  |  0x2  |
++-------+-------+--------+------------+--------+--------+-------+-------+-------+
+|  0x1  |  0x2  |  yes   |  yes,0x2   |   no   |  yes   | drop  |  no   |  no   |
++-------+-------+--------+------------+--------+--------+-------+-------+-------+
+|  0x1  |  0x2  |   no   |     no     |  yes   |  yes   | pass  |  0x3  |  0x1  |
+|       |       |        |            |        |        |       |       |  0x2  |
++-------+-------+--------+------------+--------+--------+-------+-------+-------+
+|  0x1  |  0x2  |  yes   |     no     |  yes   |  yes   | pass  |  0x3  |  0x1  |
++-------+-------+--------+------------+--------+--------+-------+-------+-------+
+|  0x1  |  0x2  |   no   |  yes,0x1   |  yes   |  yes   | pass  |  0x3  |  0x1  |
+|       |       |        |            |        |        |       |       |  0x2  |
++-------+-------+--------+------------+--------+--------+-------+-------+-------+
+|  0x1  |  0x2  |   no   |  yes,0x2   |  yes   |  yes   | pass  |  0x3  |  0x1  |
+|       |       |        |            |        |        |       |       |  0x2  |
++-------+-------+--------+------------+--------+--------+-------+-------+-------+
+|  0x1  |  0x2  |  yes   |  yes,0x1   |  yes   |  yes   | pass  |  0x3  |  0x1  |
++-------+-------+--------+------------+--------+--------+-------+-------+-------+
+|  0x1  |  0x2  |  yes   |  yes,0x2   |  yes   |  yes   | drop  |   no  |  no   |
++-------+-------+--------+------------+--------+--------+-------+-------+-------+
+
 Test Case: Strip/Filter/Extend/Insert enable/disable random test
 ================================================================
 
-- 
2.27.0


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

* [dts][PATCH V2 8/8] tests/dual_vlan: modify script and test plan to support i40e fimware > 8.3
  2022-11-10  5:33 [dts][PATCH V2 1/8] test_plans/vlan: modify script and test plan to support i40e fimware > 8.3 Weiyuan Li
                   ` (5 preceding siblings ...)
  2022-11-10  5:33 ` [dts][PATCH V2 7/8] test_plans/dual_vlan: " Weiyuan Li
@ 2022-11-10  5:33 ` Weiyuan Li
  2022-11-18  1:59   ` Jiale, SongX
  6 siblings, 1 reply; 9+ messages in thread
From: Weiyuan Li @ 2022-11-10  5:33 UTC (permalink / raw)
  To: dts, lijuan.tu; +Cc: Weiyuan Li

Modify script and test plan to i40e support fimware > 8.3.
When the fimrware > 8.3, if the filter is to take effect need to enable
extend.

Signed-off-by: Weiyuan Li <weiyuanx.li@intel.com>
---

v2:
-use the firmware version to judge whether to add command `extend on`.

 tests/TestSuite_dual_vlan.py | 389 ++++++++++++++++++++++-------------
 1 file changed, 246 insertions(+), 143 deletions(-)

diff --git a/tests/TestSuite_dual_vlan.py b/tests/TestSuite_dual_vlan.py
index 87c5325b..e0cfc4b8 100644
--- a/tests/TestSuite_dual_vlan.py
+++ b/tests/TestSuite_dual_vlan.py
@@ -14,65 +14,6 @@ import re
 import time
 
 import framework.utils as utils
-
-txvlan = 3
-outvlan = 1
-invlan = 2
-
-allResult = {
-    "TX+OUTER+INNER": (txvlan, outvlan, invlan),
-    "TX+INNER": (txvlan, invlan),
-    "TX+OUTER": (txvlan, outvlan),
-    "OUTER+INNER": (outvlan, invlan),
-    "INNER": (invlan,),
-    "OUTER": (outvlan,),
-    "NONE": ("No",),
-}
-
-stripCase = 0x1
-filterCase = 0x2
-qinqCase = 0x4
-txCase = 0x8
-
-vlanCaseDef = [
-    0,
-    stripCase,
-    filterCase,
-    filterCase | stripCase,
-    qinqCase,
-    qinqCase | stripCase,
-    qinqCase | filterCase,
-    qinqCase | filterCase | stripCase,
-    txCase,
-    txCase | stripCase,
-    txCase | filterCase,
-    txCase | filterCase | stripCase,
-    txCase | qinqCase,
-    txCase | qinqCase | stripCase,
-    txCase | qinqCase | filterCase,
-    txCase | qinqCase | filterCase | stripCase,
-]
-
-vlanCase = [
-    "OUTER+INNER",
-    "INNER",
-    ("OUTER+INNER", "NONE"),
-    ("INNER", "NONE"),
-    "OUTER+INNER",
-    "OUTER",
-    ("NONE", "OUTER+INNER"),
-    ("NONE", "OUTER"),
-    "TX+OUTER+INNER",
-    "TX+INNER",
-    ("TX+OUTER+INNER", "NONE"),
-    ("TX+INNER", "NONE"),
-    "TX+OUTER+INNER",
-    "TX+OUTER",
-    ("NONE", "TX+OUTER+INNER"),
-    ("NONE", "TX+OUTER"),
-]
-
-
 from framework.pmd_output import PmdOutput
 from framework.test_case import TestCase
 
@@ -104,6 +45,15 @@ class TestDualVlan(TestCase):
             "Default", "--portmask=%s" % portMask, socket=self.ports_socket
         )
 
+        # Get the firmware version information
+        try:
+            self.fwversion, _, _ = self.pmdout.get_firmware_version(
+                self.dut_ports[0]
+            ).split()
+        except ValueError:
+            # nic IXGBE, IGC
+            self.fwversion = self.pmdout.get_firmware_version(self.dut_ports[0]).split()
+
         if self.nic in [
             "I40E_10G-SFP_XL710",
             "I40E_40G-QSFP_A",
@@ -120,6 +70,127 @@ class TestDualVlan(TestCase):
         self.verify("Set mac packet forwarding mode" in out, "set fwd mac error")
         out = self.dut.send_expect("start", "testpmd> ", 120)
 
+        if self.kdriver == "i40e" and self.fwversion >= "8.40":
+            self.config_i40e_firmware_vlan()
+        else:
+            self.config_original()
+
+    def config_original(self):
+        self.txvlan = 3
+        self.outvlan = 1
+        self.invlan = 2
+
+        self.allResult = {
+            "TX+OUTER+INNER": (self.txvlan, self.outvlan, self.invlan),
+            "TX+INNER": (self.txvlan, self.invlan),
+            "TX+OUTER": (self.txvlan, self.outvlan),
+            "OUTER+INNER": (self.outvlan, self.invlan),
+            "INNER": (self.invlan,),
+            "OUTER": (self.outvlan,),
+            "NONE": ("No",),
+        }
+
+        self.stripCase = 0x1
+        self.filterCase = 0x2
+        self.qinqCase = 0x4
+        self.txCase = 0x8
+
+        self.vlanCaseDef = [
+            0,
+            self.stripCase,
+            self.filterCase,
+            self.filterCase | self.stripCase,
+            self.qinqCase,
+            self.qinqCase | self.stripCase,
+            self.qinqCase | self.filterCase,
+            self.qinqCase | self.filterCase | self.stripCase,
+            self.txCase,
+            self.txCase | self.stripCase,
+            self.txCase | self.filterCase,
+            self.txCase | self.filterCase | self.stripCase,
+            self.txCase | self.qinqCase,
+            self.txCase | self.qinqCase | self.stripCase,
+            self.txCase | self.qinqCase | self.filterCase,
+            self.txCase | self.qinqCase | self.filterCase | self.stripCase,
+        ]
+
+        self.vlanCase = [
+            "OUTER+INNER",
+            "INNER",
+            ("OUTER+INNER", "NONE"),
+            ("INNER", "NONE"),
+            "OUTER+INNER",
+            "OUTER",
+            ("NONE", "OUTER+INNER"),
+            ("NONE", "OUTER"),
+            "TX+OUTER+INNER",
+            "TX+INNER",
+            ("TX+OUTER+INNER", "NONE"),
+            ("TX+INNER", "NONE"),
+            "TX+OUTER+INNER",
+            "TX+OUTER",
+            ("NONE", "TX+OUTER+INNER"),
+            ("NONE", "TX+OUTER"),
+        ]
+
+    def config_i40e_firmware_vlan(self):
+        self.txvlan = 3
+        self.outvlan = 1
+        self.invlan = 2
+
+        self.allResult = {
+            "TX+OUTER+INNER": (self.txvlan, self.outvlan, self.invlan),
+            "TX+INNER": (self.txvlan, self.invlan),
+            "TX+OUTER": (self.txvlan, self.outvlan),
+            "OUTER+INNER": (self.outvlan, self.invlan),
+            "INNER": (self.invlan,),
+            "OUTER": (self.outvlan,),
+            "NONE": ("No",),
+        }
+
+        self.stripCase = 0x1
+        self.filterCase = 0x2
+        self.qinqCase = 0x4
+        self.txCase = 0x8
+
+        self.vlanCaseDef = [
+            0,
+            self.stripCase,
+            self.filterCase | self.qinqCase,
+            self.filterCase | self.qinqCase | self.stripCase,
+            self.qinqCase,
+            self.qinqCase | self.stripCase,
+            self.qinqCase | self.filterCase,
+            self.qinqCase | self.filterCase | self.stripCase,
+            self.txCase,
+            self.txCase | self.stripCase,
+            self.txCase | self.filterCase | self.qinqCase,
+            self.txCase | self.filterCase | self.qinqCase | self.stripCase,
+            self.txCase | self.qinqCase,
+            self.txCase | self.qinqCase | self.stripCase,
+            self.txCase | self.qinqCase | self.filterCase,
+            self.txCase | self.qinqCase | self.filterCase | self.stripCase,
+        ]
+
+        self.vlanCase = [
+            "OUTER+INNER",
+            "INNER",
+            ("OUTER+INNER", "NONE"),
+            ("OUTER", "NONE"),
+            "OUTER+INNER",
+            "OUTER",
+            ("OUTER+INNER", "NONE"),
+            ("OUTER", "NONE"),
+            "TX+OUTER+INNER",
+            "TX+INNER",
+            ("TX+OUTER+INNER", "NONE"),
+            ("TX+OUTER", "NONE"),
+            "TX+OUTER+INNER",
+            "TX+OUTER",
+            ("TX+OUTER+INNER", "NONE"),
+            ("TX+OUTER", "NONE"),
+        ]
+
     def start_tcpdump(self, rxItf):
 
         self.tester.send_expect("rm -rf ./getPackageByTcpdump.cap", "#")
@@ -174,14 +245,15 @@ class TestDualVlan(TestCase):
                 # Intel® Ethernet 700 Series NIC vlan filter can't close, if want close need remove rx_vlan
                 if mode == "filter":
                     if modeName[mode] == "off":
-                        self.dut.send_expect(
-                            "rx_vlan add %s %s" % (outvlan, dutRxPortId), "testpmd> "
-                        )
+                        self.dut.send_expect("vlan set filter off all", "testpmd> ")
                         continue
                     else:
-                        self.dut.send_expect(
-                            "rx_vlan rm %s %s" % (outvlan, dutRxPortId), "testpmd> "
-                        )
+                        self.dut.send_expect("vlan set filter on all", "testpmd> ")
+                        if self.kdriver == "i40e" and self.fwversion >= "8.40":
+                            self.dut.send_expect(
+                                "rx_vlan add %s %s" % (self.outvlan, dutRxPortId),
+                                "testpmd> ",
+                            )
                         continue
 
             if mode == "stripq":
@@ -209,14 +281,15 @@ class TestDualVlan(TestCase):
                 # Intel® Ethernet 700 Series NIC vlan filter can't close, if want close need remove rx_vlan
                 if mode == "filter":
                     if modeName[mode] == "off":
-                        self.dut.send_expect(
-                            "rx_vlan add %s %s" % (outvlan, dutRxPortId), "testpmd> "
-                        )
+                        self.dut.send_expect("vlan set filter off all", "testpmd> ")
                         continue
                     else:
-                        self.dut.send_expect(
-                            "rx_vlan rm %s %s" % (outvlan, dutRxPortId), "testpmd> "
-                        )
+                        self.dut.send_expect("vlan set filter on all", "testpmd> ")
+                        if self.kdriver == "i40e" and self.fwversion >= "8.40":
+                            self.dut.send_expect(
+                                "rx_vlan add %s %s" % (self.outvlan, dutRxPortId),
+                                "testpmd> ",
+                            )
                         continue
 
             if mode == "extend":
@@ -235,22 +308,22 @@ class TestDualVlan(TestCase):
         """
         Setup Strip/Filter/Extend/Insert enable/disable for synthetic test.
         """
-        caseDef = vlanCaseDef[caseIndex]
+        caseDef = self.vlanCaseDef[caseIndex]
         temp = []
 
-        temp.append("on") if (caseDef & stripCase) != 0 else temp.append("off")
-        temp.append("on") if (caseDef & filterCase) != 0 else temp.append("off")
-        temp.append("on") if (caseDef & qinqCase) != 0 else temp.append("off")
+        temp.append("on") if (caseDef & self.stripCase) != 0 else temp.append("off")
+        temp.append("on") if (caseDef & self.filterCase) != 0 else temp.append("off")
+        temp.append("on") if (caseDef & self.qinqCase) != 0 else temp.append("off")
         if (self.nic in ["cavium_a063", "cavium_a064"]) and temp[2] == "on":
             ## Skip QinQ for cavium devices as it is not supported.
             return
         self.mode_config(strip=temp[0], filter=temp[1], extend=temp[2])
 
-        if (caseDef & txCase) != 0:
+        if (caseDef & self.txCase) != 0:
             self.dut.send_expect("stop", "testpmd> ")
             self.dut.send_expect("port stop all", "testpmd> ")
             self.dut.send_expect(
-                "tx_vlan set %s %s" % (dutTxPortId, txvlan), "testpmd> "
+                "tx_vlan set %s %s" % (dutTxPortId, self.txvlan), "testpmd> "
             )
             self.dut.send_expect("port start all", "testpmd> ")
             self.dut.send_expect("start", "testpmd> ")
@@ -259,27 +332,27 @@ class TestDualVlan(TestCase):
             temp[0],
             temp[1],
             temp[2],
-            "on" if (caseDef & txCase) != 0 else "off",
+            "on" if (caseDef & self.txCase) != 0 else "off",
         )
 
-        if (caseDef & filterCase) != 0:
+        if (caseDef & self.filterCase) != 0:
             self.dut.send_expect(
-                "rx_vlan add %s %s" % (outvlan, dutRxPortId), "testpmd> "
+                "rx_vlan add %s %s" % (self.outvlan, dutRxPortId), "testpmd> "
             )
-            self.vlan_send_packet(outvlan, invlan)
-            self.check_result(vlanCase[caseIndex][0], configMode + " result Error")
+            self.vlan_send_packet(self.outvlan, self.invlan)
+            self.check_result(self.vlanCase[caseIndex][0], configMode + " result Error")
             self.dut.send_expect(
-                "rx_vlan rm %s %s" % (outvlan, dutRxPortId), "testpmd> "
+                "rx_vlan rm %s %s" % (self.outvlan, dutRxPortId), "testpmd> "
             )
             self.dut.send_expect(
-                "rx_vlan add %s %s" % (invlan, dutRxPortId), "testpmd> "
+                "rx_vlan add %s %s" % (self.invlan, dutRxPortId), "testpmd> "
             )
-            self.vlan_send_packet(outvlan, invlan)
-            self.check_result(vlanCase[caseIndex][1], configMode + " result Error")
+            self.vlan_send_packet(self.outvlan, self.invlan)
+            self.check_result(self.vlanCase[caseIndex][1], configMode + " result Error")
             self.dut.send_expect(
-                "rx_vlan rm %s %s" % (invlan, dutRxPortId), "testpmd> "
+                "rx_vlan rm %s %s" % (self.invlan, dutRxPortId), "testpmd> "
             )
-            if (caseDef & txCase) != 0:
+            if (caseDef & self.txCase) != 0:
                 self.dut.send_expect("stop", "testpmd> ")
                 self.dut.send_expect("port stop all", "testpmd> ")
                 self.dut.send_expect("tx_vlan reset %s" % dutTxPortId, "testpmd> ")
@@ -288,24 +361,24 @@ class TestDualVlan(TestCase):
 
         else:
             self.dut.send_expect(
-                "rx_vlan add %s %s" % (invlan, dutRxPortId), "testpmd> "
+                "rx_vlan add %s %s" % (self.invlan, dutRxPortId), "testpmd> "
             )
             self.dut.send_expect(
-                "rx_vlan add %s %s" % (outvlan, dutRxPortId), "testpmd> "
+                "rx_vlan add %s %s" % (self.outvlan, dutRxPortId), "testpmd> "
             )
-            self.vlan_send_packet(outvlan, invlan)
-            self.check_result(vlanCase[caseIndex], configMode + " result Error")
-            if (caseDef & txCase) != 0:
+            self.vlan_send_packet(self.outvlan, self.invlan)
+            self.check_result(self.vlanCase[caseIndex], configMode + " result Error")
+            if (caseDef & self.txCase) != 0:
                 self.dut.send_expect("stop", "testpmd> ")
                 self.dut.send_expect("port stop all", "testpmd> ")
                 self.dut.send_expect("tx_vlan reset %s" % dutTxPortId, "testpmd> ")
                 self.dut.send_expect("port start all", "testpmd> ")
                 self.dut.send_expect("start", "testpmd> ")
             self.dut.send_expect(
-                "rx_vlan rm %s %s" % (invlan, dutRxPortId), "testpmd> "
+                "rx_vlan rm %s %s" % (self.invlan, dutRxPortId), "testpmd> "
             )
             self.dut.send_expect(
-                "rx_vlan rm %s %s" % (outvlan, dutRxPortId), "testpmd> "
+                "rx_vlan rm %s %s" % (self.outvlan, dutRxPortId), "testpmd> "
             )
 
     def check_result(self, resultKey, errorString):
@@ -314,14 +387,15 @@ class TestDualVlan(TestCase):
         """
         print(("vlan flage config:%s" % errorString))
         out = self.get_tcpdump_package()
-        if allResult[resultKey][0] == "No":
+        if self.allResult[resultKey][0] == "No":
             self.verify("vlan" not in out, errorString)
         else:
             resultList = []
-            for i in range(len(allResult[resultKey]) - 1):
-                resultList.append("vlan %s" % allResult[resultKey][i])
+            for i in range(len(self.allResult[resultKey]) - 1):
+                resultList.append("vlan %s" % self.allResult[resultKey][i])
             resultList.append(
-                "vlan %s" % allResult[resultKey][len(allResult[resultKey]) - 1]
+                "vlan %s"
+                % self.allResult[resultKey][len(self.allResult[resultKey]) - 1]
             )
             for line in resultList:
                 self.verify(line in out, "receive packet is wrong:%s" % out)
@@ -338,15 +412,22 @@ class TestDualVlan(TestCase):
         """
         self.mode_config(filter="on")
         self.mode_config(strip="off")
-        self.mode_config(extend="off")
-        self.vlan_send_packet(outvlan)
+        if self.kdriver == "i40e" and self.fwversion >= "8.40":
+            self.mode_config(extend="on")
+            self.dut.send_expect(
+                "rx_vlan rm %s %s" % (self.outvlan, dutRxPortId), "testpmd> "
+            )
+        else:
+            self.mode_config(extend="off")
+
+        self.vlan_send_packet(self.outvlan)
         out = self.get_tcpdump_package()
         print(out)
         self.verify(
-            out is not None and "vlan %s" % outvlan not in out,
+            out is not None and "vlan %s" % self.outvlan not in out,
             "Vlan filter enable error: " + out,
         )
-
+        self.logger.debug(self.nic)
         if self.nic not in [
             "ICE_25G-E810C_SFP",
             "ICE_100G-E810C_QSFP",
@@ -359,18 +440,22 @@ class TestDualVlan(TestCase):
             "I40E_10G-10G_BASE_T_X722",
         ]:
             self.mode_config(filter="off")
-            self.vlan_send_packet(outvlan)
+            self.vlan_send_packet(self.outvlan)
             out = self.get_tcpdump_package()
-            self.verify("vlan %s" % outvlan in out, "Vlan filter disable error: " + out)
+            self.verify(
+                "vlan %s" % self.outvlan in out, "Vlan filter disable error: " + out
+            )
         else:
             self.dut.send_expect(
-                "rx_vlan add %s %s" % (outvlan, dutRxPortId), "testpmd> "
+                "rx_vlan add %s %s" % (self.outvlan, dutRxPortId), "testpmd> "
             )
-            self.vlan_send_packet(outvlan)
+            self.vlan_send_packet(self.outvlan)
             out = self.get_tcpdump_package()
-            self.verify("vlan %s" % outvlan in out, "Vlan filter disable error: " + out)
+            self.verify(
+                "vlan %s" % self.outvlan in out, "Vlan filter disable error: " + out
+            )
             self.dut.send_expect(
-                "rx_vlan rm %s %s" % (outvlan, dutRxPortId), "testpmd> "
+                "rx_vlan rm %s %s" % (self.outvlan, dutRxPortId), "testpmd> "
             )
 
     def test_vlan_filter_table(self):
@@ -380,20 +465,26 @@ class TestDualVlan(TestCase):
 
         self.mode_config(filter="on")
         self.mode_config(strip="off")
-        self.mode_config(extend="off")
-
-        self.dut.send_expect("rx_vlan add %s %s" % (outvlan, dutRxPortId), "testpmd> ")
-        self.vlan_send_packet(outvlan)
+        if self.kdriver == "i40e" and self.fwversion >= "8.40":
+            self.mode_config(extend="on")
+        else:
+            self.mode_config(extend="off")
+        self.dut.send_expect(
+            "rx_vlan add %s %s" % (self.outvlan, dutRxPortId), "testpmd> "
+        )
+        self.vlan_send_packet(self.outvlan)
         out = self.get_tcpdump_package()
         self.verify(
-            "vlan %s" % outvlan in out, "vlan filter table enable error: " + out
+            "vlan %s" % self.outvlan in out, "vlan filter table enable error: " + out
         )
 
-        self.dut.send_expect("rx_vlan rm %s %s" % (outvlan, dutRxPortId), "testpmd> ")
-        self.vlan_send_packet(outvlan)
+        self.dut.send_expect(
+            "rx_vlan rm %s %s" % (self.outvlan, dutRxPortId), "testpmd> "
+        )
+        self.vlan_send_packet(self.outvlan)
         out = self.get_tcpdump_package()
         self.verify(
-            out is not None and "vlan %s" % outvlan not in out,
+            out is not None and "vlan %s" % self.outvlan not in out,
             "vlan filter table disable error: " + out,
         )
 
@@ -417,16 +508,18 @@ class TestDualVlan(TestCase):
             "I40E_10G-10G_BASE_T_X722",
         ]:
             self.dut.send_expect(
-                "rx_vlan add %s %s" % (outvlan, dutRxPortId), "testpmd> "
+                "rx_vlan add %s %s" % (self.outvlan, dutRxPortId), "testpmd> "
             )
-        self.vlan_send_packet(outvlan)
+        self.vlan_send_packet(self.outvlan)
         out = self.get_tcpdump_package()
-        self.verify("vlan %s" % outvlan not in out, "Vlan strip enable error: " + out)
+        self.verify(
+            "vlan %s" % self.outvlan not in out, "Vlan strip enable error: " + out
+        )
 
         self.mode_config(strip="off")
-        self.vlan_send_packet(outvlan)
+        self.vlan_send_packet(self.outvlan)
         out = self.get_tcpdump_package()
-        self.verify("vlan %s" % outvlan in out, "Vlan strip disable error: " + out)
+        self.verify("vlan %s" % self.outvlan in out, "Vlan strip disable error: " + out)
         if self.nic in [
             "ICE_25G-E810C_SFP",
             "ICE_100G-E810C_QSFP",
@@ -439,7 +532,7 @@ class TestDualVlan(TestCase):
             "I40E_10G-10G_BASE_T_X722",
         ]:
             self.dut.send_expect(
-                "rx_vlan rm %s %s" % (outvlan, dutRxPortId), "testpmd> "
+                "rx_vlan rm %s %s" % (self.outvlan, dutRxPortId), "testpmd> "
             )
 
     def test_vlan_stripq_config(self):
@@ -450,23 +543,25 @@ class TestDualVlan(TestCase):
         self.mode_config(extend="off")
         self.mode_config(strip="off")
         self.mode_config(stripq="off")
-        self.vlan_send_packet(outvlan)
+        self.vlan_send_packet(self.outvlan)
         out = self.get_tcpdump_package()
         self.verify(
-            "vlan %s" % outvlan in out, "vlan strip queue disable error : " + out
+            "vlan %s" % self.outvlan in out, "vlan strip queue disable error : " + out
         )
         # if self.nic in ["I40E_10G-SFP_XL710", "I40E_40G-QSFP_A", "I40E_40G-QSFP_B"]:
         self.mode_config(strip="on")
         self.mode_config(stripq="on")
-        self.vlan_send_packet(outvlan)
+        self.vlan_send_packet(self.outvlan)
         out = self.get_tcpdump_package()
-        self.verify("vlan %s" % outvlan not in out, "vlan strip enable error: " + out)
+        self.verify(
+            "vlan %s" % self.outvlan not in out, "vlan strip enable error: " + out
+        )
 
         self.mode_config(stripq="off")
-        self.vlan_send_packet(outvlan)
+        self.vlan_send_packet(self.outvlan)
         out = self.get_tcpdump_package()
         self.verify(
-            "vlan %s" % outvlan in out, "vlan strip queue disable error: " + out
+            "vlan %s" % self.outvlan in out, "vlan strip queue disable error: " + out
         )
 
     def test_vlan_insert_config(self):
@@ -482,13 +577,15 @@ class TestDualVlan(TestCase):
 
         self.dut.send_expect("stop", "testpmd> ")
         self.dut.send_expect("port stop all", "testpmd> ")
-        self.dut.send_expect("tx_vlan set %s %s" % (dutTxPortId, txvlan), "testpmd> ")
+        self.dut.send_expect(
+            "tx_vlan set %s %s" % (dutTxPortId, self.txvlan), "testpmd> "
+        )
         self.dut.send_expect("port start all", "testpmd> ")
         self.dut.send_expect("start", "testpmd> ")
 
         self.vlan_send_packet()
         out = self.get_tcpdump_package()
-        self.verify("vlan %s" % txvlan in out, "vlan insert enable error: " + out)
+        self.verify("vlan %s" % self.txvlan in out, "vlan insert enable error: " + out)
 
         self.dut.send_expect("stop", "testpmd> ")
         self.dut.send_expect("port stop all", "testpmd> ")
@@ -498,7 +595,9 @@ class TestDualVlan(TestCase):
 
         self.vlan_send_packet()
         out = self.get_tcpdump_package()
-        self.verify("vlan %s" % txvlan not in out, "vlan insert disable error: " + out)
+        self.verify(
+            "vlan %s" % self.txvlan not in out, "vlan insert disable error: " + out
+        )
 
     def test_vlan_tpid_config(self):
         """
@@ -510,8 +609,6 @@ class TestDualVlan(TestCase):
                 "ICE_25G-E810C_SFP",
                 "ICE_100G-E810C_QSFP",
                 "I40E_40G-QSFP_B",
-                "I40E_10G-SFP_X722",
-                "I40E_10G-10G_BASE_T_X722",
                 "IGB_1G-82574L",
                 "I40E_10G-10G_BASE_T_BC",
             ],
@@ -521,21 +618,27 @@ class TestDualVlan(TestCase):
         self.mode_config(filter="on", strip="on", extend="on")
         # nic only support inner model, except Intel® Ethernet 700 Series nic
         self.dut.send_expect("vlan set inner tpid 0x1234 %s" % dutRxPortId, "testpmd> ")
-        self.vlan_send_packet(outvlan, invlan)
+        self.vlan_send_packet(self.outvlan, self.invlan)
 
         out = self.get_tcpdump_package()
         self.verify("0x8100" in out, "tpid is error: " + out)
-        self.verify("vlan %s" % outvlan in out, "vlan tpid disable error: " + out)
-        self.verify("vlan %s" % invlan in out, "vlan tpid disable error: " + out)
+        self.verify("vlan %s" % self.outvlan in out, "vlan tpid disable error: " + out)
+        self.verify("vlan %s" % self.invlan in out, "vlan tpid disable error: " + out)
 
         self.dut.send_expect("vlan set inner tpid 0x8100 %s" % dutRxPortId, "testpmd> ")
-        self.vlan_send_packet(outvlan, invlan)
+        self.vlan_send_packet(self.outvlan, self.invlan)
 
         out = self.get_tcpdump_package()
-        self.verify("0x8100" in out, "tpid is error: " + out)
-        self.verify(
-            out is not None and "vlan" not in out, "vlane tpid enable error: " + out
-        )
+        if self.kdriver == "i40e" and self.fwversion >= "8.40":
+            self.verify("0x8100" in out, "tpid is error: " + out)
+            self.verify(
+                out is not None and f"vlan {self.invlan}" not in out,
+                "vlane tpid enable error: " + out,
+            )
+        else:
+            self.verify(
+                out is not None and "vlan" not in out, "vlane tpid enable error: " + out
+            )
 
     def test_vlan_synthetic_test(self):
         """
@@ -544,7 +647,7 @@ class TestDualVlan(TestCase):
         self.verify(
             self.nic != "IGB_1G-82574L", "sorry, dual vlan cannot support this self.nic"
         )
-        for i in range(len(vlanCase)):
+        for i in range(len(self.vlanCase)):
             self.multimode_test(i)
 
     def test_vlan_random_test(self):
-- 
2.27.0


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

* RE: [dts][PATCH V2 8/8] tests/dual_vlan: modify script and test plan to support i40e fimware > 8.3
  2022-11-10  5:33 ` [dts][PATCH V2 8/8] tests/dual_vlan: " Weiyuan Li
@ 2022-11-18  1:59   ` Jiale, SongX
  0 siblings, 0 replies; 9+ messages in thread
From: Jiale, SongX @ 2022-11-18  1:59 UTC (permalink / raw)
  To: dts; +Cc: Li, WeiyuanX, Tu, Lijuan

> -----Original Message-----
> From: Weiyuan Li <weiyuanx.li@intel.com>
> Sent: Thursday, November 10, 2022 1:34 PM
> To: dts@dpdk.org; Tu, Lijuan <lijuan.tu@intel.com>
> Cc: Li, WeiyuanX <weiyuanx.li@intel.com>
> Subject: [dts][PATCH V2 8/8] tests/dual_vlan: modify script and test plan to
> support i40e fimware > 8.3
> 
> Modify script and test plan to i40e support fimware > 8.3.
> When the fimrware > 8.3, if the filter is to take effect need to enable extend.
> 
> Signed-off-by: Weiyuan Li <weiyuanx.li@intel.com>
> ---
Tested-by: Song Jiale <songx.jiale@intel.com>

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

end of thread, other threads:[~2022-11-18  1:59 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-10  5:33 [dts][PATCH V2 1/8] test_plans/vlan: modify script and test plan to support i40e fimware > 8.3 Weiyuan Li
2022-11-10  5:33 ` [dts][PATCH V2 2/8] tests/vlan_ethertype_config: " Weiyuan Li
2022-11-10  5:33 ` [dts][PATCH V2 3/8] test_plans/vlan: " Weiyuan Li
2022-11-10  5:33 ` [dts][PATCH V2 4/8] tests/vlan: " Weiyuan Li
2022-11-10  5:33 ` [dts][PATCH V2 5/8] test_plans/ipgre: " Weiyuan Li
2022-11-10  5:33 ` [dts][PATCH V2 6/8] tests/ipgre: " Weiyuan Li
2022-11-10  5:33 ` [dts][PATCH V2 7/8] test_plans/dual_vlan: " Weiyuan Li
2022-11-10  5:33 ` [dts][PATCH V2 8/8] tests/dual_vlan: " Weiyuan Li
2022-11-18  1:59   ` Jiale, SongX

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