[dts] [PATCH 3/4] Add vxlan test plan.

Yong Liu yong.liu at intel.com
Mon Jun 8 04:21:27 CEST 2015


From: Marvin Liu <yong.liu at intel.com>

In this suite, we will verify checksum and tunnel filter feature on vxlan.
This suite also contain performance test of checksum and tunnel filter.

Signed-off-by: Marvin Liu <yong.liu at intel.com>

diff --git a/test_plans/vxlan_test_plan.rst b/test_plans/vxlan_test_plan.rst
new file mode 100644
index 0000000..55dc227
--- /dev/null
+++ b/test_plans/vxlan_test_plan.rst
@@ -0,0 +1,392 @@
+.. Copyright (c) <2014>, Intel Corporation
+   All rights reserved.
+
+   Redistribution and use in source and binary forms, with or without
+   modification, are permitted provided that the following conditions
+   are met:
+
+   - Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+
+   - Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in
+     the documentation and/or other materials provided with the
+     distribution.
+
+   - Neither the name of Intel Corporation nor the names of its
+     contributors may be used to endorse or promote products derived
+     from this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   "AS IS" AND ANY EXPR   ESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+   FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+   COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+   (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+   SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+   HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+   STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+   OF THE POSSIBILITY OF SUCH DAMAGE.
+
+================
+ Fortville Vxlan
+================
+Cloud providers build virtual network overlays over existing network 
+infrastructure that provide tenant isolation and scaling. Tunneling 
+layers added to the packets carry the virtual networking frames over
+existing Layer 2 and IP networks. Conceptually, this is similar to 
+creating virtual private networks over the Internet. Fortville will 
+process these tunneling layers by the hardware.
+
+This document provides test plan for Fortville vxlan packet detecting,
+checksum computing and filtering.
+
+Prerequisites
+=============
+1x Intel® X710 (Fortville) NICs (2x 40GbE full duplex optical ports per NIC)
+plugged into the available PCIe Gen3 8-lane slot.
+
+1x Intel® XL710-DA4 (Eagle Fountain) (1x 10GbE full duplex optical ports per NIC)
+plugged into the avaiable PCIe Gen3 8-lane slot.
+
+DUT board must be two sockets system and each cpu have more than 8 lcores.
+
+Test Case: Vxlan ipv4 packet detect
+===================================
+Start testpmd with tunneling packet type to vxlan::
+
+	testpmd -c ffff -n 4 -- -i --tunnel-type=1 --rxq=4 --txq=4 --nb-cores=8 --nb-ports=2
+	
+Set rxonly packet forwarding mode and enable verbose log::
+
+	set fwd rxonly
+	set verbose 1
+
+Send packet as table listed and check dumped packet type the same as column 
+"Rx packet type".
+
++------------+----------+-----------+------------+----------+-----------+---------------------+-----------+
+| Outer Vlan | Outer IP | Outer UDP | Inner Vlan | Inner L3 | Inner L4  | Rx packet type      | Pkt Error |
++------------+----------+-----------+------------+----------+-----------+---------------------+-----------+
+| No         | Ipv4     | None      | None       | None     | None      | PKT_RX_IPV4_HDR     | None      |
++------------+----------+-----------+------------+----------+-----------+---------------------+-----------+
+| No         | Ipv4     | Vxlan     | None       | Ipv4     | Udp       | PKT_RX_IPV4_HDR_EXT | None      |
++------------+----------+-----------+------------+----------+-----------+---------------------+-----------+
+| No         | Ipv4     | Vxlan     | None       | Ipv4     | Tcp       | PKT_RX_IPV4_HDR_EXT | None      |
++------------+----------+-----------+------------+----------+-----------+---------------------+-----------+
+| No         | Ipv4     | Vxlan     | None       | Ipv4     | Sctp      | PKT_RX_IPV4_HDR_EXT | None      |
++------------+----------+-----------+------------+----------+-----------+---------------------+-----------+
+| Yes        | Ipv4     | Vxlan     | None       | Ipv4     | Udp       | PKT_RX_IPV4_HDR_EXT | None      |
++------------+----------+-----------+------------+----------+-----------+---------------------+-----------+
+| Yes        | Ipv4     | Vxlan     | Yes        | Ipv4     | Udp       | PKT_RX_IPV4_HDR_EXT | None      |
++------------+----------+-----------+------------+----------+-----------+---------------------+-----------+
+
+
+
+Test Case: Vxlan ipv6 packet detect
+===================================
+Start testpmd with tunneling packet type to vxlan::
+
+	testpmd -c ffff -n 4 -- -i --tunnel-type=1 --rxq=4 --txq=4 --nb-cores=8 --nb-ports=2
+	
+Set rxonly packet forwarding mode and enable verbose log::
+
+	set fwd rxonly
+	set verbose 1
+
+Send ipv6 packet as table listed and check dumped packet type the same as 
+column "Rx packet type".
+
++------------+----------+-----------+------------+----------+-----------+---------------------+-----------+
+| Outer Vlan | Outer IP | Outer UDP | Inner Vlan | Inner L3 | Innter L4 | Rx packet type      | Pkt Error |
++------------+----------+-----------+------------+----------+-----------+---------------------+-----------+
+| No         | Ipv6     | None      | None       | None     | None      | PKT_RX_IPV6_HDR     | None      |
++------------+----------+-----------+------------+----------+-----------+---------------------+-----------+
+| No         | Ipv6     | Vxlan     | None       | Ipv6     | Udp       | PKT_RX_IPV6_HDR_EXT | None      |
++------------+----------+-----------+------------+----------+-----------+---------------------+-----------+
+| No         | Ipv6     | Vxlan     | None       | Ipv6     | Tcp       | PKT_RX_IPV6_HDR_EXT | None      |
++------------+----------+-----------+------------+----------+-----------+---------------------+-----------+
+| No         | Ipv6     | Vxlan     | None       | Ipv6     | Sctp      | PKT_RX_IPV6_HDR_EXT | None      |
++------------+----------+-----------+------------+----------+-----------+---------------------+-----------+
+| Yes        | Ipv6     | Vxlan     | None       | Ipv6     | Udp       | PKT_RX_IPV6_HDR_EXT | None      |
++------------+----------+-----------+------------+----------+-----------+---------------------+-----------+
+| Yes        | Ipv6     | Vxlan     | Yes        | Ipv6     | Udp       | PKT_RX_IPV6_HDR_EXT | None      |
++------------+----------+-----------+------------+----------+-----------+---------------------+-----------+
+
+
+Test Case: Vxlan ipv4 checksum offload
+======================================
+
+Start testpmd with tunneling packet type to vxlan::
+
+	testpmd -c ffff -n 4 -- -i --tunnel-type=1 --rxq=4 --txq=4 --nb-cores=8 --nb-ports=2
+	
+Set csum packet forwarding mode and enable verbose log::
+
+	set fwd csum
+	set verbose 1
+
+Enable VXLAN protocal on ports::
+
+    rx_vxlan_port add 4789 0
+    rx_vxlan_port add 4789 1
+
+Enable IP,UDP,TCP,SCTP,VXLAN checksum offload::
+	
+	tx_checksum set 0 ip hw
+	tx_checksum set 0 udp hw
+	tx_checksum set 0 tcp hw
+	tx_checksum set 0 sctp hw
+	tx_checksum set 0 vxlan hw
+
+Send packet with valid checksum and check there's no chksum error counter 
+increased.
+
++------------+----------+-----------+------------+----------+-----------+-----------+
+| Outer Vlan | Outer IP | Outer UDP | Inner Vlan | Inner L3 | Innter L4 | Pkt Error |
++------------+----------+-----------+------------+----------+-----------+-----------+
+| No         | Ipv4     | None      | None       | None     | None      | None      |
++------------+----------+-----------+------------+----------+-----------+-----------+
+
+Send packet with invalid l3 checksum first. Then check forwarded packet checksum 
+corrected and there's correct l3 chksum error counter increased.
+
++------------+----------+-----------+------------+----------+-----------+
+| Outer Vlan | Outer IP | Outer UDP | Inner Vlan | Inner L3 | Innter L4 |
++------------+----------+-----------+------------+----------+-----------+
+| No         | Bad Ipv4 | None      | None       | None     | None      |
++------------+----------+-----------+------------+----------+-----------+
+| No         | Ipv4     | Vxlan     | None       | Bad Ipv4 | Udp       |
++------------+----------+-----------+------------+----------+-----------+
+| No         | Bad Ipv4 | Vxlan     | None       | Ipv4     | Udp       |
++------------+----------+-----------+------------+----------+-----------+
+| No         | Bad Ipv4 | Vxlan     | None       | Bad Ipv4 | Udp       |
++------------+----------+-----------+------------+----------+-----------+
+
+Send packet with invalid l4 checksum first. Then check forwarded packet checksum 
+corrected and there's correct l4 chksum error counter increased.
+
++------------+----------+-----------+------------+----------+-----------+
+| Outer Vlan | Outer IP | Outer UDP | Inner Vlan | Inner L3 | Innter L4 |
++------------+----------+-----------+------------+----------+-----------+
+| No         | Ipv4     | Vxlan     | None       | Ipv4     | Bad Udp   |
++------------+----------+-----------+------------+----------+-----------+
+| No         | Ipv4     | Vxlan     | None       | Ipv4     | Bad Tcp   |
++------------+----------+-----------+------------+----------+-----------+
+| No         | Ipv4     | Vxlan     | None       | Ipv4     | Bad Sctp  |
++------------+----------+-----------+------------+----------+-----------+
+
+Send vlan packet with invalid l3 checksum first. Then check forwarded packet 
+checksum corrected and there's correct l3 chksum error counter increased.
+
++------------+----------+-----------+------------+----------+-----------+
+| Outer Vlan | Outer IP | Outer UDP | Inner Vlan | Inner L3 | Innter L4 |
++------------+----------+-----------+------------+----------+-----------+
+| Yes        | Bad Ipv4 | Vxlan     | None       | Ipv4     | Udp       |
++------------+----------+-----------+------------+----------+-----------+
+| Yes        | Ipv4     | Vxlan     | None       | Bad Ipv4 | Udp       |
++------------+----------+-----------+------------+----------+-----------+
+| Yes        | Bad Ipv4 | Vxlan     | None       | Bad Ipv4 | Udp       |
++------------+----------+-----------+------------+----------+-----------+
+| Yes        | Bad Ipv4 | Vxlan     | Yes        | Ipv4     | Udp       |
++------------+----------+-----------+------------+----------+-----------+
+| Yes        | Ipv4     | Vxlan     | Yes        | Bad Ipv4 | Udp       |
++------------+----------+-----------+------------+----------+-----------+
+| Yes        | Bad Ipv4 | Vxlan     | Yes        | Bad Ipv4 | Udp       |
++------------+----------+-----------+------------+----------+-----------+
+
+Send vlan packet with invalid l4 checksum first. Then check forwarded packet 
+checksum corrected and there's correct l4 chksum error counter increased.
+
++------------+----------+-----------+------------+----------+-----------+
+| Outer Vlan | Outer IP | Outer UDP | Inner Vlan | Inner L3 | Innter L4 |
++------------+----------+-----------+------------+----------+-----------+
+| Yes        | Ipv4     | Vxlan     | None       | Ipv4     | Bad Udp   |
++------------+----------+-----------+------------+----------+-----------+
+| Yes        | Ipv4     | Vxlan     | None       | Ipv4     | Bad Tcp   |
++------------+----------+-----------+------------+----------+-----------+
+| Yes        | Ipv4     | Vxlan     | None       | Ipv4     | Bad Sctp  |
++------------+----------+-----------+------------+----------+-----------+
+
+
+Test Case: Vxlan ipv6 checksum offload
+======================================
+Start testpmd with tunneling packet type::
+
+	testpmd -c ffff -n 4 -- -i --tunnel-type=1 --rxq=4 --txq=4 --nb-cores=8 --nb-ports=2
+	
+Set csum packet forwarding mode and enable verbose log::
+
+	set fwd csum
+	set verbose 1
+
+
+Enable VXLAN protocal on ports::
+
+    rx_vxlan_port add 4789 0
+    rx_vxlan_port add 4789 1
+
+Enable IP,UDP,TCP,SCTP,VXLAN checksum offload::
+	
+	tx_checksum set 0 ip hw
+	tx_checksum set 0 udp hw
+	tx_checksum set 0 tcp hw
+	tx_checksum set 0 sctp hw
+
+Send ipv6 packet with valid checksum and check there's no chksum error counter 
+increased.
+
++------------+----------+-----------+------------+----------+-----------+-----------+
+| Outer Vlan | Outer IP | Outer UDP | Inner Vlan | Inner L3 | Innter L4 | Pkt Error |
++------------+----------+-----------+------------+----------+-----------+-----------+
+| No         | Ipv6     | None      | None       | None     | None      | None      |
++------------+----------+-----------+------------+----------+-----------+-----------+
+
+
+Send ipv6 packet with invalid l3 checksum first. Then check forwarded packet 
+checksum corrected and there's correct l3 chksum error counter increased.
+
++------------+----------+-----------+------------+----------+-----------+
+| Outer Vlan | Outer IP | Outer UDP | Inner Vlan | Inner L3 | Inner L4  |
++------------+----------+-----------+------------+----------+-----------+
+| No         | Ipv6     | Vxlan     | None       | Ipv4     | None      |
++------------+----------+-----------+------------+----------+-----------+
+| No         | Ipv6     | Vxlan     | None       | Bad Ipv4 | Udp       |
++------------+----------+-----------+------------+----------+-----------+
+
+Send vlan+ipv6 packet with invalid l4 checksum first. Then check forwarded 
+packet checksum corrected and there's correct l4 chksum error counter 
+increased.
+
++------------+----------+-----------+------------+----------+-----------+
+| Outer Vlan | Outer IP | Outer UDP | Inner Vlan | Inner L3 | Inner L4  |
++------------+----------+-----------+------------+----------+-----------+
+| Yes        | Ipv6     | Vxlan     | None       | Ipv4     | Bad Udp   |
++------------+----------+-----------+------------+----------+-----------+
+| Yes        | Ipv6     | Vxlan     | None       | Ipv4     | Bad Tcp   |
++------------+----------+-----------+------------+----------+-----------+
+| Yes        | Ipv6     | Vxlan     | None       | Ipv4     | Bad Sctp  |
++------------+----------+-----------+------------+----------+-----------+
+| Yes        | Ipv6     | Vxlan     | Yes        | Ipv4     | Bad Udp   |
++------------+----------+-----------+------------+----------+-----------+
+| Yes        | Ipv6     | Vxlan     | Yes        | Ipv4     | Bad Tcp   |
++------------+----------+-----------+------------+----------+-----------+
+| Yes        | Ipv6     | Vxlan     | Yes        | Ipv4     | Bad Sctp  |
++------------+----------+-----------+------------+----------+-----------+
+
+Test Case: Clould Filter
+========================
+Start testpmd with tunneling packet type to vxlan and disable receive side 
+scale for hardware limitation::
+
+	testpmd -c ffff -n 4 -- -i --tunnel-type=1 --disable-rss --rxq=4 --txq=4 --nb-cores=8 --nb-ports=2
+	
+Set rxonly packet forwarding mode and enable verbose log::
+
+	set fwd rxonly
+	set verbose 1
+
+Add one new Cloud filter as table listed first::
+
+	tunnel_filter add 0 11:22:33:44:55:66 00:00:20:00:00:01 192.168.2.2 1 vxlan imac-ivlan 1 3
+
+Then send one packet and check packet was forwarded into right queue.
+
++------------+------------+------------+----------+----------+--------+-------+
+| Outer Mac  | Inner Mac  | Inner Vlan | Outer Ip | Inner Ip | Vni ID | Queue |
++------------+------------+------------+----------+----------+--------+-------+
+| No         | Yes        | Yes        | No       | No       | No     | 1     |
++------------+------------+------------+----------+----------+--------+-------+
+| No         | Yes        | Yes        | No       | No       | Yes    | 1     |
++------------+------------+------------+----------+----------+--------+-------+
+| No         | Yes        | No         | No       | No       | Yes    | 1     |
++------------+------------+------------+----------+----------+--------+-------+
+| No         | Yes        | No         | No       | No       | No     | 1     |
++------------+------------+------------+----------+----------+--------+-------+
+| Yes        | Yes        | No         | No       | Yes      | Yes    | 1     |
++------------+------------+------------+----------+----------+--------+-------+
+| No         | No         | No         | No       | Yes      | No     | 1     |
++------------+------------+------------+----------+----------+--------+-------+
+
+
+Add Clould filter to max number will be failed.
+
+Remove Clould filter which has been added. Then send one packet and check 
+packet was received in queue 0.
+
+Add Clould filter with invalid Mac address "00:00:00:00:01" will be failed.
+
+Add Clould filter with invalid ip address "192.168.1.256" will be failed.
+
+Add Clould filter with invalid vlan "4097" will be failed.
+
+Add Clould filter with invalid vni "16777216" will be failed.
+
+Add Clould filter with invalid queue id "64" will be failed.
+
+Test Case: Vxlan Checksum Offload Performance Benchmarking
+==========================================================
+
+The throughput is measured for each of these cases for vxlan tx checksum
+offload of "all by software", "inner l3 offload by hardware", "inner l4
+offload by hardware", "inner l3&l4 offload by hardware", "outer l3 offload 
+by hardware", "outer l4 offload by hardware", "outer l3&l4 offload by 
+hardware", "all by hardware".
+
+The results are printed in the following table:
+
++----------------+---------------+------------+---------------+------------+---------------+------------+
+| Calculate Type | 1S/1C/1T Mpps | % linerate | 1S/1C/2T Mpps | % linerate | 1S/2C/1T Mpps | % linerate |
++================+===============+============+===============+============+===============+============+
+| SOFTWARE ALL   |               |            |               |            |               |            |
++----------------+---------------+------------+---------------+------------+---------------+------------+
+| HW OUTER L3    |               |            |               |            |               |            |
++----------------+---------------+------------+---------------+------------+---------------+------------+
+| HW OUTER L4    |               |            |               |            |               |            |
++----------------+---------------+------------+---------------+------------+---------------+------------+
+| HW OUTER L3&L4 |               |            |               |            |               |            |
++----------------+---------------+------------+---------------+------------+---------------+------------+
+| HW INNER L3    |               |            |               |            |               |            |
++----------------+---------------+------------+---------------+------------+---------------+------------+
+| HW INNER L4    |               |            |               |            |               |            |
++----------------+---------------+------------+---------------+------------+---------------+------------+
+| HW INNER L3&L4 |               |            |               |            |               |            |
++----------------+---------------+------------+---------------+------------+---------------+------------+
+| HARDWARE ALL   |               |            |               |            |               |            |
++----------------+---------------+------------+---------------+------------+---------------+------------+
+
+Test Case: Vxlan Tunnel filter Performance Benchmarking
+=======================================================
+The throughput is measured for different Vxlan tunnel filter types.
+Queue single mean there's only one flow and forwarded to the first queue.
+Queue multi mean there're two flows and configure to different queues.
+
++--------+------------------+--------+--------+------------+
+| Packet | Filter           | Queue  | Mpps   | % linerate |
++========+==================+========+========+============+
+| Normal | None             | Single |        |            |
++--------+------------------+--------+--------+------------+
+| Vxlan  | None             | Single |        |            |
++--------+------------------+--------+--------+------------+
+| Vxlan  | imac-ivlan       | Single |        |            |
++--------+------------------+--------+--------+------------+
+| Vxlan  | imac-ivlan-tenid | Single |        |            |
++--------+------------------+--------+--------+------------+
+| Vxlan  | imac-tenid       | Single |        |            |
++--------+------------------+--------+--------+------------+
+| Vxlan  | imac             | Single |        |            |
++--------+------------------+--------+--------+------------+
+| Vxlan  | omac-imac-tenid  | Single |        |            |
++--------+------------------+--------+--------+------------+
+| Vxlan  | imac-ivlan       | Multi  |        |            |
++--------+------------------+--------+--------+------------+
+| Vxlan  | imac-ivlan-tenid | Multi  |        |            |
++--------+------------------+--------+--------+------------+
+| Vxlan  | imac-tenid       | Multi  |        |            |
++--------+------------------+--------+--------+------------+
+| Vxlan  | imac             | Multi  |        |            |
++--------+------------------+--------+--------+------------+
+| Vxlan  | omac-imac-tenid  | Multi  |        |            |
++--------+------------------+--------+--------+------------+
-- 
1.9.3



More information about the dts mailing list