* [DTS][PATCH V2 0/2] update existing cases and add new cases to validate vf tunneling packets
@ 2022-11-25 9:12 Ke Xu
2022-11-25 9:12 ` [DTS][PATCH V2 1/2] test_plans/vf_offload: add test cases for " Ke Xu
2022-11-25 9:12 ` [DTS][PATCH V2 2/2] test_plans/vf_offload: format packet organization of previous cases into a table Ke Xu
0 siblings, 2 replies; 3+ messages in thread
From: Ke Xu @ 2022-11-25 9:12 UTC (permalink / raw)
To: dts; +Cc: qi.fu, lijuan.tu, ke1.xu
DPDK will support outer checksum offload and tunneling TSO in release 22.11,
this patch is intended to cover the new scenario of test these features.
Added new case HW tunneling checksum offload check, covering tunnel
packets for HW checksum offload.
Added new packets to TSO prerequisites and added new case csum fwd
engine, use tunnel TSO, covering tunnel packets for HW TSO.
Format the packet organization into a table to make it better organized to
read.
Ke Xu (2):
test_plans/vf_offload: add test cases for tunneling packets
test_plans/vf_offload: format packet organization of previous cases
into a table
test_plans/vf_offload_test_plan.rst | 255 +++++++++++++++++++++++++++-
1 file changed, 253 insertions(+), 2 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* [DTS][PATCH V2 1/2] test_plans/vf_offload: add test cases for tunneling packets
2022-11-25 9:12 [DTS][PATCH V2 0/2] update existing cases and add new cases to validate vf tunneling packets Ke Xu
@ 2022-11-25 9:12 ` Ke Xu
2022-11-25 9:12 ` [DTS][PATCH V2 2/2] test_plans/vf_offload: format packet organization of previous cases into a table Ke Xu
1 sibling, 0 replies; 3+ messages in thread
From: Ke Xu @ 2022-11-25 9:12 UTC (permalink / raw)
To: dts; +Cc: qi.fu, lijuan.tu, ke1.xu
DPDK will support outer checksum offload and tunneling TSO in release
22.11, this commit is intended to cover the new scenario of test these
features.
Added new case HW tunneling checksum offload check, covering tunnel
packets for HW checksum offload.
Added new packets to TSO prerequisites and added new case csum fwd
engine, use tunnel TSO, covering tunnel packets for HW TSO.
Signed-off-by: Ke Xu <ke1.xu@intel.com>
---
test_plans/vf_offload_test_plan.rst | 225 ++++++++++++++++++++++++++++
1 file changed, 225 insertions(+)
diff --git a/test_plans/vf_offload_test_plan.rst b/test_plans/vf_offload_test_plan.rst
index c5e720f2..8a5e36af 100644
--- a/test_plans/vf_offload_test_plan.rst
+++ b/test_plans/vf_offload_test_plan.rst
@@ -113,6 +113,96 @@ be validated as pass by the tester.
The IPv4 source address will not be changed by testpmd.
+Test Case: HW tunneling checksum offload check
+==============================================
+Start testpmd and enable checksum offload on rx port.
+
+Setup the ``csum`` forwarding mode::
+
+ testpmd> set fwd csum
+ Set csum packet forwarding mode
+
+Enable the IPv4/UDP/TCP/SCTP HW checksum offload on port 0::
+
+ testpmd> port stop all
+ testpmd> csum set ip hw 0
+ testpmd> csum set tcp hw 0
+ testpmd> csum set udp hw 0
+ testpmd> csum set sctp hw 0
+ testpmd> csum set outer-ip hw 0
+ testpmd> csum set outer-udp hw 0
+ testpmd> csum parse-tunnel on 0
+ testpmd> port start all
+ testpmd> set promisc 0 on
+ testpmd> start
+ csum packet forwarding - CRC stripping disabled - packets/burst=32
+ nb forwarding cores=1 - nb forwarding ports=10
+ RX queues=1 - RX desc=128 - RX free threshold=64
+ RX threshold registers: pthresh=8 hthresh=8 wthresh=4
+ TX queues=1 - TX desc=512 - TX free threshold=0
+ TX threshold registers: pthresh=32 hthresh=8 wthresh=8
+
+Configure the traffic generator to send the multiple packets for the following
+combination with inner package of:
+
+ +----------------+----------------------------------------+
+ | packet type | packet organization |
+ +================+========================================+
+ | | IPv4 / UDP / payload |
+ | +----------------------------------------+
+ | | IPv4 / TCP / payload |
+ | +----------------------------------------+
+ | inner packets | IPv4 / SCTP / payload |
+ | for checksum +----------------------------------------+
+ | offload test | IPv6 / UDP / payload |
+ | +----------------------------------------+
+ | | IPv6 / TCP / payload |
+ | +----------------------------------------+
+ | | IPv6 / SCTP / payload |
+ +----------------+----------------------------------------+
+
+And outer or tunneling package of :
+
+ +----------------+----------------------------------------+
+ | packet type | packet organization |
+ +================+========================================+
+ | | Ether / IPv4 / UDP / VXLAN / Ether |
+ | +----------------------------------------+
+ | | Ether / IPv6 / UDP / VXLAN / Ether |
+ | +----------------------------------------+
+ | | Ether / IPv4 / GRE |
+ | outer and +----------------------------------------+
+ | tunneling | Ether / IPv4 / GRE / Ether |
+ | packets +----------------------------------------+
+ | for checksum | Ether / IPv6 / GRE |
+ | offload test +----------------------------------------+
+ | | Ether / IPv6 / GRE / Ether |
+ | +----------------------------------------+
+ | | Ether / IPv4 / NVGRE |
+ | +----------------------------------------+
+ | | Ether / IPv4 / NVGRE / Ether |
+ | +----------------------------------------+
+ | | Ether / IPv6 / NVGRE |
+ | +----------------------------------------+
+ | | Ether / IPv6 / NVGRE / Ether |
+ | +----------------------------------------+
+ | | Ether / IPv4 / UDP / GTPU |
+ | +----------------------------------------+
+ | | Ether / IPv6 / UDP / GTPU |
+ +----------------+----------------------------------------+
+
+Notice that VxLAN needs DCF to configure, so testing of VxLAN may need to perform
+on DCF.
+
+Send packets with incorrect checksum on outer IPv4, outer UDP (if exists), inner
+IP, inner L4, verify dpdk can rx it and report the checksum error,
+verify that the same number of packet are correctly received on the traffic
+generator side. And IPv4 checksum, TCP checksum, UDP checksum, SCTP checksum need
+be validated as pass by the tester.
+
+The IPv4 source address will not be changed by testpmd.
+
+
Test Case: SW checksum offload check
====================================
@@ -183,6 +273,91 @@ and checksum on rx port. The test commands is below::
# Enable TSO on tx port
testpmd> tso set 800 1
+For tunneling cases, add tunneling support on csum and enable tunnel tso as
+below::
+
+ # Enable hw checksum for tunneling on rx port
+ testpmd> port stop all
+ testpmd> csum set outer-ip hw 0
+ testpmd> csum set outer-udp hw 0
+ testpmd> csum parse-tunnel on 0
+ testpmd> port start all
+ testpmd> tunnel_tso set 800 1
+
+Configure the traffic generator to send the multiple packets for the following
+combination:
+
+ +----------------+----------------------------------------+
+ | packet type | packet organization |
+ +================+========================================+
+ | | Ether / IPv4 / TCP / payload len 128 |
+ | +----------------------------------------+
+ | | Ether / IPv4 / TCP / payload len 800 |
+ | +----------------------------------------+
+ | | Ether / IPv4 / TCP / payload len 801 |
+ | +----------------------------------------+
+ | | Ether / IPv4 / TCP / payload len 1700 |
+ | non-tunneling +----------------------------------------+
+ | packets for | Ether / IPv4 / TCP / payload len 2500 |
+ | TSO test +----------------------------------------+
+ | | Ether / IPv6 / TCP / payload len 128 |
+ | +----------------------------------------+
+ | | Ether / IPv6 / TCP / payload len 800 |
+ | +----------------------------------------+
+ | | Ether / IPv6 / TCP / payload len 801 |
+ | +----------------------------------------+
+ | | Ether / IPv6 / TCP / payload len 1700 |
+ | +----------------------------------------+
+ | | Ether / IPv6 / TCP / payload len 2500 |
+ +----------------+----------------------------------------+
+ | | Ether / IPv4 / UDP / VXLAN / Ether |
+ | +----------------------------------------+
+ | | Ether / IPv6 / UDP / VXLAN / Ether |
+ | +----------------------------------------+
+ | | Ether / IPv4 / GRE |
+ | outer and +----------------------------------------+
+ | tunneling | Ether / IPv4 / GRE / Ether |
+ | packets +----------------------------------------+
+ | for tso test | Ether / IPv6 / GRE |
+ | +----------------------------------------+
+ | | Ether / IPv6 / GRE / Ether |
+ | +----------------------------------------+
+ | | Ether / IPv4 / NVGRE |
+ | +----------------------------------------+
+ | | Ether / IPv4 / NVGRE / Ether |
+ | +----------------------------------------+
+ | | Ether / IPv6 / NVGRE |
+ | +----------------------------------------+
+ | | Ether / IPv6 / NVGRE / Ether |
+ | +----------------------------------------+
+ | | Ether / IPv4 / UDP / GTPU |
+ | +----------------------------------------+
+ | | Ether / IPv6 / UDP / GTPU |
+ +----------------+----------------------------------------+
+ | | IPv4 / TCP / payload len 128 |
+ | +----------------------------------------+
+ | | IPv4 / TCP / payload len 800 |
+ | +----------------------------------------+
+ | | IPv4 / TCP / payload len 801 |
+ | +----------------------------------------+
+ | | IPv4 / TCP / payload len 1700 |
+ | +----------------------------------------+
+ | inner packets | IPv4 / TCP / payload len 2500 |
+ | for TSO test +----------------------------------------+
+ | | IPv6 / TCP / payload len 128 |
+ | +----------------------------------------+
+ | | IPv6 / TCP / payload len 800 |
+ | +----------------------------------------+
+ | | IPv6 / TCP / payload len 801 |
+ | +----------------------------------------+
+ | | IPv6 / TCP / payload len 1700 |
+ | +----------------------------------------+
+ | | IPv6 / TCP / payload len 2500 |
+ +----------------+----------------------------------------+
+
+Notice that VxLAN needs DCF to configure, so testing of VxLAN may need to perform
+on DCF.
+
Test case: csum fwd engine, use TSO
===================================
@@ -226,3 +401,53 @@ Test IPv4() in scapy::
Test IPv6() in scapy::
sendp([Ether(dst="%s", src="52:00:00:00:00:00")/IPv6(src="FE80:0:0:0:200:1FF:FE00:200", dst="3555:5555:6666:6666:7777:7777:8888:8888")/UDP(sport=1021,dport=1021)/Raw(load="\x50"*%s)], iface="%s")
+
+
+Test case: csum fwd engine, use tunnel TSO
+==========================================
+
+This test uses ``Scapy`` to send out one large tunneled TCP package. The dut
+forwards package with tunnel TSO enable on tx port while rx port turns checksum
+on. After package send out by TSO on tx port, the tester receives multiple small
+TCP package.
+
+Turn off tx port by ethtool on tester::
+
+ ethtool -K <tx port> rx off tx off tso off gso off gro off lro off
+ ip l set <tx port> up
+
+Capture package rx port on tester::
+
+ tcpdump -n -e -i <rx port> -s 0 -w /tmp/cap
+
+Launch the userland ``testpmd`` application on DUT as follows::
+
+ testpmd> set verbose 1
+ # Enable hw checksum on rx port
+ testpmd> port stop all
+ testpmd> csum set ip hw 0
+ testpmd> csum set tcp hw 0
+ testpmd> csum set udp hw 0
+ testpmd> csum set sctp hw 0
+ testpmd> csum set outer-ip hw 0
+ testpmd> csum set outer-udp hw 0
+ testpmd> csum parse-tunnel on 0
+ testpmd> set promisc 0 on
+ testpmd> port start all
+
+ # Enable TSO on tx port
+ testpmd> tunnel_tso set 800 1
+ # Set fwd engine and start
+
+ testpmd> set fwd csum
+ testpmd> start
+
+Test IPv4() in scapy::
+
+ for one_outer_packet in outer_packet_list:
+ sendp([Ether(dst="%s", src="52:00:00:00:00:00")/one_outer_packet/IP(src="192.168.1.1",dst="192.168.1.2")/UDP(sport=1021,dport=1021)/Raw(load="\x50"*%s)], iface="%s")
+
+Test IPv6() in scapy::
+
+ for one_outer_packet in outer_packet_list:
+ sendp([Ether(dst="%s", src="52:00:00:00:00:00")/one_outer_packet/IPv6(src="FE80:0:0:0:200:1FF:FE00:200", dst="3555:5555:6666:6666:7777:7777:8888:8888")/UDP(sport=1021,dport=1021)/Raw(load="\x50"*%s)], iface="%s")
--
2.25.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* [DTS][PATCH V2 2/2] test_plans/vf_offload: format packet organization of previous cases into a table
2022-11-25 9:12 [DTS][PATCH V2 0/2] update existing cases and add new cases to validate vf tunneling packets Ke Xu
2022-11-25 9:12 ` [DTS][PATCH V2 1/2] test_plans/vf_offload: add test cases for " Ke Xu
@ 2022-11-25 9:12 ` Ke Xu
1 sibling, 0 replies; 3+ messages in thread
From: Ke Xu @ 2022-11-25 9:12 UTC (permalink / raw)
To: dts; +Cc: qi.fu, lijuan.tu, ke1.xu
Format the packet organization into a table to make it better organized to
read.
Signed-off-by: Ke Xu <ke1.xu@intel.com>
---
test_plans/vf_offload_test_plan.rst | 30 +++++++++++++++++++++++++++--
1 file changed, 28 insertions(+), 2 deletions(-)
diff --git a/test_plans/vf_offload_test_plan.rst b/test_plans/vf_offload_test_plan.rst
index 8a5e36af..943de179 100644
--- a/test_plans/vf_offload_test_plan.rst
+++ b/test_plans/vf_offload_test_plan.rst
@@ -102,7 +102,21 @@ Enable the IPv4/UDP/TCP/SCTP HW checksum offload on port 0::
TX threshold registers: pthresh=32 hthresh=8 wthresh=8
Configure the traffic generator to send the multiple packets for the following
-combination: IPv4/UDP, IPv4/TCP, IPv4/SCTP, IPv6/UDP, IPv6/TCP.
+combination:
+
+ +----------------+----------------------------------------+
+ | packet type | packet organization |
+ +================+========================================+
+ | | Ether / IPv4 / UDP / payload |
+ | +----------------------------------------+
+ | | Ether / IPv4 / TCP / payload |
+ | +----------------------------------------+
+ | packets | Ether / IPv4 / SCTP / payload |
+ | for checksum +----------------------------------------+
+ | offload test | Ether / IPv6 / UDP / payload |
+ | +----------------------------------------+
+ | | Ether / IPv6 / TCP / payload |
+ +----------------+----------------------------------------+
Send packets with incorrect checksum,
verify dpdk can rx it and report the checksum error,
@@ -232,7 +246,19 @@ Enable the IPv4/UDP/TCP/SCTP SW checksum offload on port 0::
TX threshold registers: pthresh=32 hthresh=8 wthresh=8
Configure the traffic generator to send the multiple packets for the following
-combination: IPv4/UDP, IPv4/TCP, IPv6/UDP, IPv6/TCP.
+combination:
+
+ +----------------+----------------------------------------+
+ | packet type | packet organization |
+ +================+========================================+
+ | | Ether / IPv4 / UDP / payload |
+ | +----------------------------------------+
+ | packets | Ether / IPv4 / TCP / payload |
+ | for checksum +----------------------------------------+
+ | offload test | Ether / IPv6 / UDP / payload |
+ | +----------------------------------------+
+ | | Ether / IPv6 / TCP / payload |
+ +----------------+----------------------------------------+
Send packets with incorrect checksum,
verify dpdk can rx it and report the checksum error,
--
2.25.1
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2022-11-25 9:14 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-25 9:12 [DTS][PATCH V2 0/2] update existing cases and add new cases to validate vf tunneling packets Ke Xu
2022-11-25 9:12 ` [DTS][PATCH V2 1/2] test_plans/vf_offload: add test cases for " Ke Xu
2022-11-25 9:12 ` [DTS][PATCH V2 2/2] test_plans/vf_offload: format packet organization of previous cases into a table Ke Xu
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).