From: "Liu, Yong" <yong.liu@intel.com>
To: "Fu, JingguoX" <jingguox.fu@intel.com>, "dts@dpdk.org" <dts@dpdk.org>
Cc: "Fu, JingguoX" <jingguox.fu@intel.com>
Subject: Re: [dts] [DTS][PATCH 1/2] pmd rss hash: add test plan
Date: Mon, 1 Jun 2015 09:20:13 +0000 [thread overview]
Message-ID: <86228AFD5BCD8E4EBFD2B90117B5E81E10E367EF@SHSMSX103.ccr.corp.intel.com> (raw)
In-Reply-To: <1432864311-21482-1-git-send-email-jingguox.fu@intel.com>
Thanks, applied in 1.1 branch.
> -----Original Message-----
> From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of Jingguo Fu
> Sent: Friday, May 29, 2015 9:52 AM
> To: dts@dpdk.org
> Cc: Fu, JingguoX
> Subject: [dts] [DTS][PATCH 1/2] pmd rss hash: add test plan
>
> Signed-off-by: Jingguo Fu <jingguox.fu@intel.com>
> ---
> test_plans/pmdrss_hash_test_plan.rst | 152
> +++++++++++++++++++++++++++++++++++
> 1 file changed, 152 insertions(+)
> create mode 100644 test_plans/pmdrss_hash_test_plan.rst
>
> diff --git a/test_plans/pmdrss_hash_test_plan.rst
> b/test_plans/pmdrss_hash_test_plan.rst
> new file mode 100644
> index 0000000..4922d3b
> --- /dev/null
> +++ b/test_plans/pmdrss_hash_test_plan.rst
> @@ -0,0 +1,152 @@
> +.. Copyright (c) <2011>, 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 EXPRESS 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 RSS full support - Support configuring hash functions
> +==================================================================
> +
> +This document provides test plan for testing the function of Fortville:
> +Support configuring hash functions.
> +
> +Prerequisites
> +-------------
> +
> +2x Intel® 82599 (Niantic) NICs (2x 10GbE full duplex optical ports per
> NIC)
> +1x Fortville_eagle NIC (4x 10G)
> +1x Fortville_spirit NIC (2x 40G)
> +2x Fortville_spirit_single NIC (1x 40G)
> +
> +The four ports of the 82599 connect to the Fortville_eagle;
> +The two ports of Fortville_spirit connect to Fortville_spirit_single.
> +The three kinds of NICs are the target NICs. the connected NICs can send
> packets
> +to these three NICs using scapy.
> +
> +Network Traffic
> +---------------
> +
> +The RSS feature is designed to improve networking performance by load
> balancing
> +the packets received from a NIC port to multiple NIC RX queues, with each
> queue
> +handled by a different logical core.
> +
> +#1. The receive packet is parsed into the header fields used by the hash
> +operation (such as IP addresses, TCP port, etc.)
> +
> +#2. A hash calculation is performed. The Fortville supports four hash
> function:
> +Toeplitz, simple XOR and their Symmetric RSS.
> +
> +#3. The seven LSBs of the hash result are used as an index into a 128/512
> entry
> +'redirection table'. Each entry provides a 4-bit RSS output index.
> +
> +#4. There are four cases to test the four hash function.
> +
> +Test Case: test_toeplitz
> +=========================
> +
> +Testpmd configuration - 16 RX/TX queues per port
> +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> +
> +#1. set up testpmd woth fortville NICs::
> +
> + ./testpmd -c fffff -n %d -- -i --coremask=0xffffe --rxq=16 --txq=16
> +
> +#2. Reta Configuration. 128 reta entries configuration::
> +
> + testpmd command: port config 0 rss reta (hash_index,queue_id)
> +
> +#3. PMD fwd only receive the packets::
> +
> + testpmd command: set fwd rxonly
> +
> +#4. rss recived package type configuration two received packet types
> configuration::
> +
> + testpmd command: port config 0 rss ip/udp
> +
> +#5. verbose configuration::
> +
> + testpmd command: set verbose 8
> +
> +#6. set hash functions, can choose symmetric or not, chosse port and
> packet type::
> +
> + set_hash_function 0 toeplitz
> +
> +#7. start packet receive::
> +
> + testpmd command: start
> +
> +tester Configuration
> +--------------------
> +
> +#1. set up scapy
> +
> +#2. send packets with different type ipv4/ipv4 with tcp/ipv4 with udp/
> + ipv6/ipv6 with tcp/ipv6 with udp::
> +
> + sendp([Ether(dst="90:e2:ba:36:99:3c")/IP(src="192.168.0.4",
> dst="192.168.0.5")], iface="eth3")
> +
> +test result
> +-----------
> +
> +The testpmd will print the hash value and actual queue of every packet.
> +
> +#1. Calaute the queue id: hash value%128or512, then refer to teh
> redirection table
> + to get the theoretical queue id.
> +
> +#2. Compare the theoretical queue id with the actual queue id.
> +
> +
> +Test Case: test_toeplitz_symmetric
> +===================================
> +
> +The same with the above steps, pay attention to "set hash function",
> should use::
> +
> + set_hash_function 0 toeplitz
> + set_sym_hash_ena_per_port 0 enable
> + set_sym_hash_ena_per_pctype 0 35 enable
> +
> +And send packets with the same flow in different direction::
> +
> + sendp([Ether(dst="90:e2:ba:36:99:3c")/IP(src="192.168.0.4",
> dst="192.168.0.5")], iface="eth3")
> + sendp([Ether(dst="90:e2:ba:36:99:3c")/IP(src="192.168.0.5",
> dst="192.168.0.4")], iface="eth3")
> +
> +And the hash value and queue should be the same for these two flow .
> +
> +Test Case: test_simple
> +=======================
> +
> +The same as the above two test cases. Just pay attention to set the hash
> function to "simple xor"
> +
> +Test Case: test_simple_symmetric
> +=================================
> +
> +The same as the above two test cases. Just pay attention to set the hash
> function to "simple xor"
> +
> +
> --
> 2.1.0
prev parent reply other threads:[~2015-06-01 9:20 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-29 1:51 Jingguo Fu
2015-05-29 1:51 ` [dts] [DTS][PATCH 2/2] pmd rss hash: add test suite Jingguo Fu
2015-06-01 9:20 ` Liu, Yong [this message]
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=86228AFD5BCD8E4EBFD2B90117B5E81E10E367EF@SHSMSX103.ccr.corp.intel.com \
--to=yong.liu@intel.com \
--cc=dts@dpdk.org \
--cc=jingguox.fu@intel.com \
/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).