test suite reviews and discussions
 help / color / mirror / Atom feed
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


      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).