From: Yong Liu <yong.liu@intel.com>
To: dts@dpdk.org
Subject: [dts] [PATCH 3/4] Add vxlan test plan.
Date: Mon, 8 Jun 2015 10:21:27 +0800 [thread overview]
Message-ID: <1433730088-5601-4-git-send-email-yong.liu@intel.com> (raw)
In-Reply-To: <1433730088-5601-1-git-send-email-yong.liu@intel.com>
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=UTF-8, Size: 22091 bytes --]
From: Marvin Liu <yong.liu@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@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
next prev parent reply other threads:[~2015-06-08 2:21 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-08 2:21 [dts] [PATCH 0/4] Add vxlan function and performance suite Yong Liu
2015-06-08 2:21 ` [dts] [PATCH 1/4] Optimize get core list function for Haswell cpu Yong Liu
2015-06-08 2:21 ` [dts] [PATCH 2/4] Add vxlan protocal support in etgen module Yong Liu
2015-06-08 2:21 ` Yong Liu [this message]
2015-06-08 2:21 ` [dts] [PATCH 4/4] Add vxlan test suite Yong Liu
2015-06-09 6:38 ` [dts] [PATCH] Enhance vxlan checksum offload performance test case Yong Liu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1433730088-5601-4-git-send-email-yong.liu@intel.com \
--to=yong.liu@intel.com \
--cc=dts@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).