* [dts][PATCH V5 1/8] test_plans/dual_vlan: modify script and test plan to support i40e fimware >= 8.4
@ 2022-11-22 8:21 Weiyuan Li
2022-11-22 8:22 ` [dts][PATCH V5 2/8] tests/dual_vlan: " Weiyuan Li
` (6 more replies)
0 siblings, 7 replies; 9+ messages in thread
From: Weiyuan Li @ 2022-11-22 8:21 UTC (permalink / raw)
To: dts; +Cc: Weiyuan Li, Song Jiale
Modify script and test plan to i40e support fimware >= 8.4.
When the fimrware >= 8.4, 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>
v2:
-use the firmware version to judge whether to add command `extend on`.
v3:
-modify description.
v4:
-modify comments.
-dual_vlan test plan modify table and add header.
v5:
-fix some typos.
test_plans/dual_vlan_test_plan.rst | 83 ++++++++++++++++++++++++++++--
1 file changed, 79 insertions(+), 4 deletions(-)
diff --git a/test_plans/dual_vlan_test_plan.rst b/test_plans/dual_vlan_test_plan.rst
index fab18515..0114a80d 100644
--- a/test_plans/dual_vlan_test_plan.rst
+++ b/test_plans/dual_vlan_test_plan.rst
@@ -35,6 +35,11 @@ The -n command is used to select the number of memory channels. It should match
Test Case: Enable/Disable VLAN packets filtering
================================================
+Due to the kernel enables Qinq and cannot be closed, the DPDK only add `extend on` to make the VLAN filter
+work normally. Therefore, if the i40e firmware version >= 8.4 the DPDK can only add `extend on` to make the VLAN filter work normally::
+
+ testpmd> vlan set extend on 0
+
Setup the ``mac`` forwarding mode::
testpmd> set fwd mac
@@ -61,9 +66,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 +115,11 @@ Disable VLAN packet extend and strip port ``0``::
testpmd> vlan set extend off 0
testpmd> vlan set strip off 0
+Due to the kernel enables Qinq and cannot be closed, the DPDK only add `extend on` to make the VLAN filter
+work normally. Therefore, if the i40e firmware version >= 8.4 the DPDK can only add `extend on` to make the VLAN filter work normally::
+
+ testpmd> vlan set extend on 0
+
Enable VLAN filtering on port ``0``::
testpmd> vlan set filter on 0
@@ -301,7 +309,9 @@ Do the synthetic test following the below table and check the result is the same
as the table(the inserted VLAN Tag Identifier is limited to ``0x3``, and all modes
except insert are set on rx port).
-+-------+-------+--------+------------+--------+--------+-------+-------+-------+
++-------------------------------------------------------+-----------------------+
+| Configure setting | Result |
++=======+=======+========+============+========+========+=======+=======+=======+
| Outer | Inner | Vlan | Vlan | Vlan | Vlan | Pass/ | Outer | Inner |
| vlan | vlan | strip | filter | extend | insert | Drop | vlan | vlan |
+-------+-------+--------+------------+--------+--------+-------+-------+-------+
@@ -358,6 +368,71 @@ except insert are set on rx port).
| 0x1 | 0x2 | yes | yes,0x2 | yes | yes | pass | 0x3 | 0x1 |
+-------+-------+--------+------------+--------+--------+-------+-------+-------+
+Due to the kernel enables Qinq and cannot be closed, the DPDK only add `extend on` to make the VLAN filter
+work normally. Therefore, if the i40e firmware >= 8.4 the synthetic test according to the following table.
+In addition, filter inner vlan when firmware <= 8.3, filter outer vlan when firmware >= 8.4.
+
++-------------------------------------------------------+-----------------------+
+| Configure setting | Result |
++=======+=======+========+============+========+========+=======+=======+=======+
+| 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 V5 2/8] tests/dual_vlan: modify script and test plan to support i40e fimware >= 8.4
2022-11-22 8:21 [dts][PATCH V5 1/8] test_plans/dual_vlan: modify script and test plan to support i40e fimware >= 8.4 Weiyuan Li
@ 2022-11-22 8:22 ` Weiyuan Li
2022-11-22 8:22 ` [dts][PATCH V5 3/8] test_plans/ipgre: " Weiyuan Li
` (5 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: Weiyuan Li @ 2022-11-22 8:22 UTC (permalink / raw)
To: dts; +Cc: Weiyuan Li, Song Jiale
Modify script and test plan to i40e support fimware >= 8.4.
When the fimrware >= 8.4, 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>
v2:
-use the firmware version to judge whether to add command `extend on`.
v3:
-modify description.
v4:
-modify comments.
-dual_vlan test plan modify table and add header.
v5:
-fix some typos.
tests/TestSuite_dual_vlan.py | 393 ++++++++++++++++++++++-------------
1 file changed, 252 insertions(+), 141 deletions(-)
diff --git a/tests/TestSuite_dual_vlan.py b/tests/TestSuite_dual_vlan.py
index 614e70eb..38c200a7 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,124 @@ class TestDualVlan(TestCase):
self.verify("Set mac packet forwarding mode" in out, "set fwd mac error")
out = self.dut.send_expect("start", "testpmd> ", 120)
+ # Vlan id
+ self.txvlanId_id = 3
+ self.outvlanId_id = 1
+ self.invlanId_id = 2
+
+ if self.kdriver == "i40e" and self.fwversion >= "8.40":
+ self.config_i40e_firmware_vlan()
+ else:
+ self.config_original()
+
+ def config_original(self):
+ self.allResult = {
+ "TX+OUTER+INNER": (self.txvlanId_id, self.outvlanId_id, self.invlanId_id),
+ "TX+INNER": (self.txvlanId_id, self.invlanId_id),
+ "TX+OUTER": (self.txvlanId_id, self.outvlanId_id),
+ "OUTER+INNER": (self.outvlanId_id, self.invlanId_id),
+ "INNER": (self.invlanId_id,),
+ "OUTER": (self.outvlanId_id,),
+ "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.allResult = {
+ "TX+OUTER+INNER": (self.txvlanId_id, self.outvlanId_id, self.invlanId_id),
+ "TX+INNER": (self.txvlanId_id, self.invlanId_id),
+ "TX+OUTER": (self.txvlanId_id, self.outvlanId_id),
+ "OUTER+INNER": (self.outvlanId_id, self.invlanId_id),
+ "INNER": (self.invlanId_id,),
+ "OUTER": (self.outvlanId_id,),
+ "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 +242,10 @@ 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> ")
continue
if mode == "stripq":
@@ -209,14 +273,10 @@ 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> ")
continue
if mode == "extend":
@@ -235,22 +295,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.txvlanId_id), "testpmd> "
)
self.dut.send_expect("port start all", "testpmd> ")
self.dut.send_expect("start", "testpmd> ")
@@ -259,27 +319,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.outvlanId_id, dutRxPortId), "testpmd> "
)
- self.vlan_send_packet(outvlan, invlan)
- self.check_result(vlanCase[caseIndex][0], configMode + " result Error")
+ self.vlan_send_packet(self.outvlanId_id, self.invlanId_id)
+ 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.outvlanId_id, dutRxPortId), "testpmd> "
)
self.dut.send_expect(
- "rx_vlan add %s %s" % (invlan, dutRxPortId), "testpmd> "
+ "rx_vlan add %s %s" % (self.invlanId_id, dutRxPortId), "testpmd> "
)
- self.vlan_send_packet(outvlan, invlan)
- self.check_result(vlanCase[caseIndex][1], configMode + " result Error")
+ self.vlan_send_packet(self.outvlanId_id, self.invlanId_id)
+ 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.invlanId_id, 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 +348,24 @@ class TestDualVlan(TestCase):
else:
self.dut.send_expect(
- "rx_vlan add %s %s" % (invlan, dutRxPortId), "testpmd> "
+ "rx_vlan add %s %s" % (self.invlanId_id, dutRxPortId), "testpmd> "
)
self.dut.send_expect(
- "rx_vlan add %s %s" % (outvlan, dutRxPortId), "testpmd> "
+ "rx_vlan add %s %s" % (self.outvlanId_id, 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.outvlanId_id, self.invlanId_id)
+ 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.invlanId_id, dutRxPortId), "testpmd> "
)
self.dut.send_expect(
- "rx_vlan rm %s %s" % (outvlan, dutRxPortId), "testpmd> "
+ "rx_vlan rm %s %s" % (self.outvlanId_id, dutRxPortId), "testpmd> "
)
def check_result(self, resultKey, errorString):
@@ -314,14 +374,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 +399,24 @@ class TestDualVlan(TestCase):
"""
self.mode_config(filter="on")
self.mode_config(strip="off")
- self.mode_config(extend="off")
- self.vlan_send_packet(outvlan)
+ # Because the kernel forces enable Qinq and cannot be closed,
+ # the dpdk can only add 'extend on' to make the VLAN filter work normally.
+ if self.kdriver == "i40e" and self.fwversion >= "8.40":
+ self.mode_config(extend="on")
+ self.dut.send_expect(
+ "rx_vlan rm %s %s" % (self.outvlanId_id, dutRxPortId), "testpmd> "
+ )
+ else:
+ self.mode_config(extend="off")
+
+ self.vlan_send_packet(self.outvlanId_id)
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.outvlanId_id 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 +429,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.outvlanId_id)
out = self.get_tcpdump_package()
- self.verify("vlan %s" % outvlan in out, "Vlan filter disable error: " + out)
+ self.verify(
+ "vlan %s" % self.outvlanId_id 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.outvlanId_id, dutRxPortId), "testpmd> "
)
- self.vlan_send_packet(outvlan)
+ self.vlan_send_packet(self.outvlanId_id)
out = self.get_tcpdump_package()
- self.verify("vlan %s" % outvlan in out, "Vlan filter disable error: " + out)
+ self.verify(
+ "vlan %s" % self.outvlanId_id 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.outvlanId_id, dutRxPortId), "testpmd> "
)
def test_vlan_filter_table(self):
@@ -380,20 +454,28 @@ 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)
+ # Because the kernel forces enable Qinq and cannot be closed,
+ # the dpdk can only add 'extend on' to make the VLAN filter work normally.
+ 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.outvlanId_id, dutRxPortId), "testpmd> "
+ )
+ self.vlan_send_packet(self.outvlanId_id)
out = self.get_tcpdump_package()
self.verify(
- "vlan %s" % outvlan in out, "vlan filter table enable error: " + out
+ "vlan %s" % self.outvlanId_id 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.outvlanId_id, dutRxPortId), "testpmd> "
+ )
+ self.vlan_send_packet(self.outvlanId_id)
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.outvlanId_id not in out,
"vlan filter table disable error: " + out,
)
@@ -417,16 +499,20 @@ 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.outvlanId_id, dutRxPortId), "testpmd> "
)
- self.vlan_send_packet(outvlan)
+ self.vlan_send_packet(self.outvlanId_id)
out = self.get_tcpdump_package()
- self.verify("vlan %s" % outvlan not in out, "Vlan strip enable error: " + out)
+ self.verify(
+ "vlan %s" % self.outvlanId_id not in out, "Vlan strip enable error: " + out
+ )
self.mode_config(strip="off")
- self.vlan_send_packet(outvlan)
+ self.vlan_send_packet(self.outvlanId_id)
out = self.get_tcpdump_package()
- self.verify("vlan %s" % outvlan in out, "Vlan strip disable error: " + out)
+ self.verify(
+ "vlan %s" % self.outvlanId_id in out, "Vlan strip disable error: " + out
+ )
if self.nic in [
"ICE_25G-E810C_SFP",
"ICE_100G-E810C_QSFP",
@@ -439,7 +525,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.outvlanId_id, dutRxPortId), "testpmd> "
)
def test_vlan_stripq_config(self):
@@ -450,23 +536,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.outvlanId_id)
out = self.get_tcpdump_package()
self.verify(
- "vlan %s" % outvlan in out, "vlan strip queue disable error : " + out
+ "vlan %s" % self.outvlanId_id 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.outvlanId_id)
out = self.get_tcpdump_package()
- self.verify("vlan %s" % outvlan not in out, "vlan strip enable error: " + out)
+ self.verify(
+ "vlan %s" % self.outvlanId_id not in out, "vlan strip enable error: " + out
+ )
self.mode_config(stripq="off")
- self.vlan_send_packet(outvlan)
+ self.vlan_send_packet(self.outvlanId_id)
out = self.get_tcpdump_package()
self.verify(
- "vlan %s" % outvlan in out, "vlan strip queue disable error: " + out
+ "vlan %s" % self.outvlanId_id in out, "vlan strip queue disable error: " + out
)
def test_vlan_insert_config(self):
@@ -482,13 +570,17 @@ 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.txvlanId_id), "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.txvlanId_id in out, "vlan insert enable error: " + out
+ )
self.dut.send_expect("stop", "testpmd> ")
self.dut.send_expect("port stop all", "testpmd> ")
@@ -498,7 +590,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.txvlanId_id not in out, "vlan insert disable error: " + out
+ )
def test_vlan_tpid_config(self):
"""
@@ -517,23 +611,40 @@ class TestDualVlan(TestCase):
)
self.mode_config(filter="on", strip="on", extend="on")
+ # i40e set VLAN id
+ self.dut.send_expect(
+ "rx_vlan add %s %s" % (self.outvlanId_id, dutRxPortId),
+ "testpmd> ",
+ )
# 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.outvlanId_id, self.invlanId_id)
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.outvlanId_id in out, "vlan tpid disable error: " + out
+ )
+ self.verify("vlan %s" % self.invlanId_id 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.outvlanId_id, self.invlanId_id)
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
- )
+ # Because the kernel forces enable Qinq and cannot be closed,
+ # the dpdk can only add 'extend on' to make the VLAN filter work normally.
+ # The kernel driver uses the outer VLAN filter, and the DPDK synchronously modifies,
+ # DPDK filter outer VLAN when firmware >= 8.4, the test result check strip inner.
+ 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.invlanId_id}" 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):
"""
@@ -542,7 +653,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
* [dts][PATCH V5 3/8] test_plans/ipgre: modify script and test plan to support i40e fimware >= 8.4
2022-11-22 8:21 [dts][PATCH V5 1/8] test_plans/dual_vlan: modify script and test plan to support i40e fimware >= 8.4 Weiyuan Li
2022-11-22 8:22 ` [dts][PATCH V5 2/8] tests/dual_vlan: " Weiyuan Li
@ 2022-11-22 8:22 ` Weiyuan Li
2022-11-22 8:22 ` [dts][PATCH V5 4/8] tests/ipgre: " Weiyuan Li
` (4 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: Weiyuan Li @ 2022-11-22 8:22 UTC (permalink / raw)
To: dts; +Cc: Weiyuan Li, Song Jiale
Modify script and test plan to i40e support fimware >= 8.4.
When the fimrware >= 8.4, 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>
v2:
-use the firmware version to judge whether to add command `extend on`.
v3:
-modify description.
v4:
-modify comments.
-dual_vlan test plan modify table and add header.
v5:
-fix some typos.
test_plans/ipgre_test_plan.rst | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/test_plans/ipgre_test_plan.rst b/test_plans/ipgre_test_plan.rst
index 693432ef..f51193b2 100644
--- a/test_plans/ipgre_test_plan.rst
+++ b/test_plans/ipgre_test_plan.rst
@@ -58,6 +58,10 @@ Start testpmd and enable rxonly forwarding mode::
testpmd> set verbose 1
testpmd> start
+ Due to the kernel enables Qinq and cannot be closed, the DPDK only add `extend on` to make the VLAN filter
+ work normally. Therefore, if the i40e firmware version >= 8.4 the DPDK can only add `extend on` to make the 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 V5 4/8] tests/ipgre: modify script and test plan to support i40e fimware >= 8.4
2022-11-22 8:21 [dts][PATCH V5 1/8] test_plans/dual_vlan: modify script and test plan to support i40e fimware >= 8.4 Weiyuan Li
2022-11-22 8:22 ` [dts][PATCH V5 2/8] tests/dual_vlan: " Weiyuan Li
2022-11-22 8:22 ` [dts][PATCH V5 3/8] test_plans/ipgre: " Weiyuan Li
@ 2022-11-22 8:22 ` Weiyuan Li
2022-11-22 8:22 ` [dts][PATCH V5 5/8] test_plans/vlan_ethertype_config: " Weiyuan Li
` (3 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: Weiyuan Li @ 2022-11-22 8:22 UTC (permalink / raw)
To: dts; +Cc: Weiyuan Li, Song Jiale
Modify script and test plan to i40e support fimware >= 8.4.
When the fimrware >= 8.4, 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>
v2:
-use the firmware version to judge whether to add command `extend on`.
v3:
-modify description.
v4:
-modify comments.
-dual_vlan test plan modify table and add header.
v5:
-fix some typos.
tests/TestSuite_ipgre.py | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/tests/TestSuite_ipgre.py b/tests/TestSuite_ipgre.py
index cd50c1c4..ecd8e19c 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 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 V5 5/8] test_plans/vlan_ethertype_config: modify script and test plan to support i40e fimware >= 8.4
2022-11-22 8:21 [dts][PATCH V5 1/8] test_plans/dual_vlan: modify script and test plan to support i40e fimware >= 8.4 Weiyuan Li
` (2 preceding siblings ...)
2022-11-22 8:22 ` [dts][PATCH V5 4/8] tests/ipgre: " Weiyuan Li
@ 2022-11-22 8:22 ` Weiyuan Li
2022-11-22 8:22 ` [dts][PATCH V5 6/8] tests/vlan_ethertype_config: " Weiyuan Li
` (2 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: Weiyuan Li @ 2022-11-22 8:22 UTC (permalink / raw)
To: dts; +Cc: Weiyuan Li, Song Jiale
Modify script and test plan to i40e support fimware >= 8.4.
When the fimrware >= 8.4, 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>
v2:
-use the firmware version to judge whether to add command `extend on`.
v3:
-modify description.
v4:
-modify comments.
-dual_vlan test plan modify table and add header.
v5:
-fix some typos.
test_plans/vlan_ethertype_config_test_plan.rst | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/test_plans/vlan_ethertype_config_test_plan.rst b/test_plans/vlan_ethertype_config_test_plan.rst
index 80a6ee28..7b145a9d 100644
--- a/test_plans/vlan_ethertype_config_test_plan.rst
+++ b/test_plans/vlan_ethertype_config_test_plan.rst
@@ -52,6 +52,10 @@ Test Case 2: test VLAN filtering on/off
testpmd> vlan set filter on 0
testpmd> start
+ Due to the kernel enables Qinq and cannot be closed, the DPDK only add `extend on` to make the VLAN filter
+ work normally. Therefore, if the i40e firmware version >= 8.4 the DPDK can only add `extend on` to make the 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 +81,10 @@ Test Case 3: test adding VLAN Tag Identifier with changing VLAN TPID
testpmd> vlan set strip off 0
testpmd> start
+ Due to the kernel enables Qinq and cannot be closed, the DPDK only add `extend on` to make the VLAN filter
+ work normally. Therefore, if the i40e firmware version >= 8.4 the DPDK can only add `extend on` to make the 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 V5 6/8] tests/vlan_ethertype_config: modify script and test plan to support i40e fimware >= 8.4
2022-11-22 8:21 [dts][PATCH V5 1/8] test_plans/dual_vlan: modify script and test plan to support i40e fimware >= 8.4 Weiyuan Li
` (3 preceding siblings ...)
2022-11-22 8:22 ` [dts][PATCH V5 5/8] test_plans/vlan_ethertype_config: " Weiyuan Li
@ 2022-11-22 8:22 ` Weiyuan Li
2022-11-22 8:22 ` [dts][PATCH V5 7/8] test_plans/vlan: " Weiyuan Li
2022-11-22 8:22 ` [dts][PATCH V5 8/8] tests/vlan: " Weiyuan Li
6 siblings, 0 replies; 9+ messages in thread
From: Weiyuan Li @ 2022-11-22 8:22 UTC (permalink / raw)
To: dts; +Cc: Weiyuan Li, Song Jiale
Modify script and test plan to i40e support fimware >= 8.4.
When the fimrware >= 8.4, 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>
v2:
-use the firmware version to judge whether to add command `extend on`.
v3:
-modify description.
v4:
-modify comments.
-dual_vlan test plan modify table and add header.
v5:
-fix some typos.
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..7147c490 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 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 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 V5 7/8] test_plans/vlan: modify script and test plan to support i40e fimware >= 8.4
2022-11-22 8:21 [dts][PATCH V5 1/8] test_plans/dual_vlan: modify script and test plan to support i40e fimware >= 8.4 Weiyuan Li
` (4 preceding siblings ...)
2022-11-22 8:22 ` [dts][PATCH V5 6/8] tests/vlan_ethertype_config: " Weiyuan Li
@ 2022-11-22 8:22 ` Weiyuan Li
2022-11-22 8:22 ` [dts][PATCH V5 8/8] tests/vlan: " Weiyuan Li
6 siblings, 0 replies; 9+ messages in thread
From: Weiyuan Li @ 2022-11-22 8:22 UTC (permalink / raw)
To: dts; +Cc: Weiyuan Li, Song Jiale
Modify script and test plan to i40e support fimware >= 8.4.
When the fimrware >= 8.4, 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>
v2:
-use the firmware version to judge whether to add command `extend on`.
v3:
-modify description.
v4:
-modify comments.
-dual_vlan test plan modify table and add header.
v5:
-fix some typos.
test_plans/vlan_test_plan.rst | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/test_plans/vlan_test_plan.rst b/test_plans/vlan_test_plan.rst
index 6e2bf74e..394b3ba4 100644
--- a/test_plans/vlan_test_plan.rst
+++ b/test_plans/vlan_test_plan.rst
@@ -61,6 +61,11 @@ 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
+
+ Due to the kernel enables Qinq and cannot be closed, the DPDK only add `extend on` to make the VLAN filter
+ work normally. Therefore, if the i40e firmware version >= 8.4 the DPDK can only add `extend on` to make the 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 +116,11 @@ 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::
-
+
+ Due to the kernel enables Qinq and cannot be closed, the DPDK only add `extend on` to make the VLAN filter
+ work normally. Therefore, if the i40e firmware version >= 8.4 the DPDK can only add `extend on` to make the 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 V5 8/8] tests/vlan: modify script and test plan to support i40e fimware >= 8.4
2022-11-22 8:21 [dts][PATCH V5 1/8] test_plans/dual_vlan: modify script and test plan to support i40e fimware >= 8.4 Weiyuan Li
` (5 preceding siblings ...)
2022-11-22 8:22 ` [dts][PATCH V5 7/8] test_plans/vlan: " Weiyuan Li
@ 2022-11-22 8:22 ` Weiyuan Li
2022-11-23 2:54 ` lijuan.tu
6 siblings, 1 reply; 9+ messages in thread
From: Weiyuan Li @ 2022-11-22 8:22 UTC (permalink / raw)
To: dts; +Cc: Weiyuan Li, Song Jiale
Modify script and test plan to i40e support fimware >= 8.4.
When the fimrware >= 8.4, 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>
v2:
-use the firmware version to judge whether to add command `extend on`.
v3:
-modify description.
v4:
-modify comments.
-dual_vlan test plan modify table and add header.
v5:
-fix some typos.
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..1bdac137 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 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 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 V5 8/8] tests/vlan: modify script and test plan to support i40e fimware >= 8.4
2022-11-22 8:22 ` [dts][PATCH V5 8/8] tests/vlan: " Weiyuan Li
@ 2022-11-23 2:54 ` lijuan.tu
0 siblings, 0 replies; 9+ messages in thread
From: lijuan.tu @ 2022-11-23 2:54 UTC (permalink / raw)
To: dts, Weiyuan Li; +Cc: Weiyuan Li, Song Jiale
On Tue, 22 Nov 2022 16:22:06 +0800, Weiyuan Li <weiyuanx.li@intel.com> wrote:
> Modify script and test plan to i40e support fimware >= 8.4.
> When the fimrware >= 8.4, if the filter is to take effect need to enable
> extend.
>
> Signed-off-by: Weiyuan Li <weiyuanx.li@intel.com>
Acked-by: Lijuan Tu <lijuan.tu@intel.com>
Series applied, thanks
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2022-11-23 2:54 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-22 8:21 [dts][PATCH V5 1/8] test_plans/dual_vlan: modify script and test plan to support i40e fimware >= 8.4 Weiyuan Li
2022-11-22 8:22 ` [dts][PATCH V5 2/8] tests/dual_vlan: " Weiyuan Li
2022-11-22 8:22 ` [dts][PATCH V5 3/8] test_plans/ipgre: " Weiyuan Li
2022-11-22 8:22 ` [dts][PATCH V5 4/8] tests/ipgre: " Weiyuan Li
2022-11-22 8:22 ` [dts][PATCH V5 5/8] test_plans/vlan_ethertype_config: " Weiyuan Li
2022-11-22 8:22 ` [dts][PATCH V5 6/8] tests/vlan_ethertype_config: " Weiyuan Li
2022-11-22 8:22 ` [dts][PATCH V5 7/8] test_plans/vlan: " Weiyuan Li
2022-11-22 8:22 ` [dts][PATCH V5 8/8] tests/vlan: " Weiyuan Li
2022-11-23 2:54 ` lijuan.tu
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).