* [dts][PATCH V1 1/4] tests/kernelpf_iavf: update dts code for driver change
@ 2022-07-05 7:18 Weiyuan Li
2022-07-05 7:18 ` [dts][PATCH V1 2/4] test_plans/kernelpf_iavf: " Weiyuan Li
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Weiyuan Li @ 2022-07-05 7:18 UTC (permalink / raw)
To: dts, yuan.peng; +Cc: Weiyuan Li
The out-tree driver has vf-vlan-pruning option,but in-tree driver has
not. So we need different action to enable vlan filter when we validate
the vlan filter function with in-tree and out-tree kernel drvier.
Signed-off-by: Weiyuan Li <weiyuanx.li@intel.com>
---
tests/TestSuite_kernelpf_iavf.py | 34 ++++++++++++++++++++++++++++----
1 file changed, 30 insertions(+), 4 deletions(-)
diff --git a/tests/TestSuite_kernelpf_iavf.py b/tests/TestSuite_kernelpf_iavf.py
index d7d17ac4..8d051931 100644
--- a/tests/TestSuite_kernelpf_iavf.py
+++ b/tests/TestSuite_kernelpf_iavf.py
@@ -96,7 +96,26 @@ class TestKernelpfIavf(TestCase):
# bind to default driver
self.bind_nic_driver(self.dut_ports, driver="")
self.used_dut_port = self.dut_ports[0]
- if self.is_eth_series_nic(800) and self.default_stats:
+ # check out tree driver whether there is flag vf-vlan-pruning.
+ # out tree path: /lib/modules/4.18.0-305.19.1.el8_4.x86_64/updates/drivers/net/ethernet/intel/i40e/i40e.ko
+ # in tree path:/lib/modules/5.15.0-27-generic/kernel/drivers/net/ethernet/intel/ice/ice.ko
+ out = self.dut.send_expect(f"modinfo {self.kdriver}", "# ")
+ pattern = "/lib/modules/(.*?)/updates/drivers"
+ regex = re.compile(pattern)
+ mo = regex.search(out)
+ if mo:
+ search_results = mo.group(0)
+ else:
+ search_results = ''
+ if "updates" in search_results and not self.default_stats:
+ self.verify(
+ False,
+ f"{self.kdriver} driver out tree does not have vf-vlan-pruning flag. Please confirm whether the driver is correct.",
+ )
+ if (
+ any([self.is_eth_series_nic(800), self.kdriver == "i40e"])
+ and self.default_stats
+ ):
self.dut.send_expect(
"ethtool --set-priv-flags %s %s on" % (self.host_intf, self.flag), "# "
)
@@ -119,7 +138,6 @@ class TestKernelpfIavf(TestCase):
self.dut.send_expect(
"ip link set %s vf 0 mac %s" % (self.host_intf, self.vf_mac), "# "
)
-
try:
for port in self.sriov_vfs_port:
@@ -453,7 +471,11 @@ class TestKernelpfIavf(TestCase):
time.sleep(1)
tcpdump_out = self.get_tcpdump_package()
receive_pkt = re.findall("vlan %s" % random_vlan, tcpdump_out)
- if self.kdriver == "i40e" and self.driver_version < "2.13.10":
+ if (
+ (self.kdriver == "i40e" and self.driver_version < "2.13.10")
+ or (self.kdriver == "i40e" and not self.default_stats)
+ or (self.kdriver == "ice" and not self.default_stats)
+ ):
self.verify(len(receive_pkt) == 2, "Failed to received vlan packet!!!")
else:
self.verify(len(receive_pkt) == 1, "Failed to received vlan packet!!!")
@@ -853,7 +875,11 @@ class TestKernelpfIavf(TestCase):
self.scapy_send_packet(self.vf_mac, self.tester_intf, vlan_flags=True, count=10)
out = self.vm_dut.get_session_output()
packets = len(re.findall("received 1 packets", out))
- if self.kdriver == "i40e" and self.driver_version < "2.13.10":
+ if (
+ (self.kdriver == "i40e" and self.driver_version < "2.13.10")
+ or (self.kdriver == "i40e" and not self.default_stats)
+ or (self.kdriver == "ice" and not self.default_stats)
+ ):
self.verify(packets == 10, "Not receive expected packet")
else:
self.verify(packets == 0, "Receive expected packet")
--
2.27.0
^ permalink raw reply [flat|nested] 4+ messages in thread
* [dts][PATCH V1 2/4] test_plans/kernelpf_iavf: update dts code for driver change
2022-07-05 7:18 [dts][PATCH V1 1/4] tests/kernelpf_iavf: update dts code for driver change Weiyuan Li
@ 2022-07-05 7:18 ` Weiyuan Li
2022-07-05 7:18 ` [dts][PATCH V1 3/4] tests/vf_vlan: " Weiyuan Li
2022-07-05 7:18 ` [dts][PATCH V1 4/4] test_plans/vf_vlan: " Weiyuan Li
2 siblings, 0 replies; 4+ messages in thread
From: Weiyuan Li @ 2022-07-05 7:18 UTC (permalink / raw)
To: dts, yuan.peng; +Cc: Weiyuan Li
The out-tree driver has vf-vlan-pruning option,but in-tree driver has
not. So we need different action to enable vlan filter when we validate
the vlan filter function with in-tree and out-tree kernel drvier.
Signed-off-by: Weiyuan Li <weiyuanx.li@intel.com>
---
test_plans/kernelpf_iavf_test_plan.rst | 3 +++
1 file changed, 3 insertions(+)
diff --git a/test_plans/kernelpf_iavf_test_plan.rst b/test_plans/kernelpf_iavf_test_plan.rst
index 8c7d1ad5..f044e3cc 100644
--- a/test_plans/kernelpf_iavf_test_plan.rst
+++ b/test_plans/kernelpf_iavf_test_plan.rst
@@ -28,6 +28,9 @@ Get the pci device id of DUT, for example::
0000:18:00.0 'Device 1592' if=enp24s0f0 drv=ice unused=igb_uio
0000:18:00.1 'Device 1592' if=enp24s0f1 drv=ice unused=igb_uio
+If the driver is out tree enable pf vf-vlan-pruning flags::
+ ethtool --set-priv-flags $PF_INTF vf-vlan-pruning on
+
Create 1 VF from 1 kernel PF::
echo 1 > /sys/bus/pci/devices/0000\:18\:00.0/sriov_numvfs
--
2.27.0
^ permalink raw reply [flat|nested] 4+ messages in thread
* [dts][PATCH V1 3/4] tests/vf_vlan: update dts code for driver change
2022-07-05 7:18 [dts][PATCH V1 1/4] tests/kernelpf_iavf: update dts code for driver change Weiyuan Li
2022-07-05 7:18 ` [dts][PATCH V1 2/4] test_plans/kernelpf_iavf: " Weiyuan Li
@ 2022-07-05 7:18 ` Weiyuan Li
2022-07-05 7:18 ` [dts][PATCH V1 4/4] test_plans/vf_vlan: " Weiyuan Li
2 siblings, 0 replies; 4+ messages in thread
From: Weiyuan Li @ 2022-07-05 7:18 UTC (permalink / raw)
To: dts, yuan.peng; +Cc: Weiyuan Li
The out-tree driver has vf-vlan-pruning option,but in-tree driver has
not. So we need different action to enable vlan filter when we validate
the vlan filter function with in-tree and out-tree kernel drvier.
Signed-off-by: Weiyuan Li <weiyuanx.li@intel.com>
---
tests/TestSuite_vf_vlan.py | 33 ++++++++++++++++++++++++++++++---
1 file changed, 30 insertions(+), 3 deletions(-)
diff --git a/tests/TestSuite_vf_vlan.py b/tests/TestSuite_vf_vlan.py
index e73ad479..4986a21b 100644
--- a/tests/TestSuite_vf_vlan.py
+++ b/tests/TestSuite_vf_vlan.py
@@ -62,7 +62,26 @@ class TestVfVlan(TestCase):
self.host_intf0 = self.dut.ports_info[self.used_dut_port_0]["intf"]
tester_port = self.tester.get_local_port(self.used_dut_port_0)
self.tester_intf0 = self.tester.get_interface(tester_port)
- if self.is_eth_series_nic(800) and self.default_stats:
+ # check out tree driver whether there is flag vf-vlan-pruning.
+ # out tree path: /lib/modules/4.18.0-305.19.1.el8_4.x86_64/updates/drivers/net/ethernet/intel/i40e/i40e.ko
+ # in tree path:/lib/modules/5.15.0-27-generic/kernel/drivers/net/ethernet/intel/ice/ice.ko
+ out = self.dut.send_expect(f"modinfo {self.kdriver}", "# ")
+ pattern = "/lib/modules/(.*?)/updates/drivers"
+ regex = re.compile(pattern)
+ mo = regex.search(out)
+ if mo:
+ search_results = mo.group(0)
+ else:
+ search_results = ''
+ if "updates" in search_results and not self.default_stats:
+ self.verify(
+ False,
+ f"{self.kdriver} driver out tree does not have vf-vlan-pruning flag. Please confirm whether the driver is correct.",
+ )
+ if (
+ any([self.is_eth_series_nic(800), self.kdriver == "i40e"])
+ and self.default_stats
+ ):
self.dut.send_expect(
"ethtool --set-priv-flags %s %s on" % (self.host_intf0, self.flag), "# "
)
@@ -233,7 +252,11 @@ class TestVfVlan(TestCase):
self.vm0_testpmd.execute_cmd("start")
out = self.send_and_getout(vlan=random_vlan, pkt_type="VLAN_UDP")
- if self.kdriver == "i40e" and self.driver_version < "2.13.10":
+ if (
+ (self.kdriver == "i40e" and self.driver_version < "2.13.10")
+ or (self.kdriver == "i40e" and not self.default_stats)
+ or (self.kdriver == "ice" and not self.default_stats)
+ ):
self.verify("received" in out, "Failed to received vlan packet!!!")
else:
self.verify("received" not in out, "Received vlan packet without pvid!!!")
@@ -354,7 +377,11 @@ class TestVfVlan(TestCase):
# send packet with vlan
out = self.send_and_getout(vlan=random_vlan, pkt_type="VLAN_UDP")
- if self.kdriver == "i40e" and self.driver_version < "2.13.10":
+ if (
+ (self.kdriver == "i40e" and self.driver_version < "2.13.10")
+ or (self.kdriver == "i40e" and not self.default_stats)
+ or (self.kdriver == "ice" and not self.default_stats)
+ ):
self.verify(
"received 1 packets" in out,
"Received mismatched vlan packet while vlan filter on",
--
2.27.0
^ permalink raw reply [flat|nested] 4+ messages in thread
* [dts][PATCH V1 4/4] test_plans/vf_vlan: update dts code for driver change
2022-07-05 7:18 [dts][PATCH V1 1/4] tests/kernelpf_iavf: update dts code for driver change Weiyuan Li
2022-07-05 7:18 ` [dts][PATCH V1 2/4] test_plans/kernelpf_iavf: " Weiyuan Li
2022-07-05 7:18 ` [dts][PATCH V1 3/4] tests/vf_vlan: " Weiyuan Li
@ 2022-07-05 7:18 ` Weiyuan Li
2 siblings, 0 replies; 4+ messages in thread
From: Weiyuan Li @ 2022-07-05 7:18 UTC (permalink / raw)
To: dts, yuan.peng; +Cc: Weiyuan Li
The out-tree driver has vf-vlan-pruning option,but in-tree driver has
not. So we need different action to enable vlan filter when we validate
the vlan filter function with in-tree and out-tree kernel drvier.
Signed-off-by: Weiyuan Li <weiyuanx.li@intel.com>
---
test_plans/vf_vlan_test_plan.rst | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/test_plans/vf_vlan_test_plan.rst b/test_plans/vf_vlan_test_plan.rst
index c183b3d6..a3d8df6b 100644
--- a/test_plans/vf_vlan_test_plan.rst
+++ b/test_plans/vf_vlan_test_plan.rst
@@ -21,6 +21,10 @@ Prerequisites
0000:87:00.0 'Ethernet Controller X710 for 10GbE SFP+' if=ens259f0 drv=i40e unused=
0000:87:00.1 'Ethernet Controller X710 for 10GbE SFP+' if=ens259f1 drv=i40e unused=
+ If the driver is out tree enable pf vf-vlan-pruning flags:
+ ethtool --set-priv-flags ens259f0 vf-vlan-pruning on
+ ethtool --set-priv-flags ens259f1 vf-vlan-pruning on
+
echo 1 > /sys/bus/pci/devices/0000\:87\:00.0/sriov_numvfs
echo 1 > /sys/bus/pci/devices/0000\:87\:00.1/sriov_numvfs
--
2.27.0
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-07-05 7:18 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-05 7:18 [dts][PATCH V1 1/4] tests/kernelpf_iavf: update dts code for driver change Weiyuan Li
2022-07-05 7:18 ` [dts][PATCH V1 2/4] test_plans/kernelpf_iavf: " Weiyuan Li
2022-07-05 7:18 ` [dts][PATCH V1 3/4] tests/vf_vlan: " Weiyuan Li
2022-07-05 7:18 ` [dts][PATCH V1 4/4] test_plans/vf_vlan: " Weiyuan Li
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).