From: "Zhan, Zhaochen" <zhaochen.zhan@intel.com>
To: "Zhang, Helin" <helin.zhang@intel.com>, "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH v4 0/7] Support configuring hash functions
Date: Mon, 13 Oct 2014 12:27:06 +0000 [thread overview]
Message-ID: <6D0EE020084B194084D70B0A8D2207B8EDC838@SHSMSX104.ccr.corp.intel.com> (raw)
In-Reply-To: <1413180766-12211-1-git-send-email-helin.zhang@intel.com>
> These patches mainly support configuring hash functions.
Tested-by: Zhaochen Zhan <zhaochen.zhan@intel.com>
This patch has been verified on three kinds of Fortville NICs.
Base commit: 23fcffe8ffaccf8a2901050e7daa4979597141ed
CPU: Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
OS: Linux fc20 3.11.10-301.fc20.x86_64
GCC: 4.8.2
NIC: 4*10G(fortville_eagle), 2*40G(fortville_spirit), 1*40G(fortville_spirit_single)
==================================================================
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(r) 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 with 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 received 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, chose 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 the 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"
next prev parent reply other threads:[~2014-10-13 12:19 UTC|newest]
Thread overview: 71+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-30 6:20 [dpdk-dev] [PATCH v3 " Helin Zhang
2014-09-30 6:20 ` [dpdk-dev] [PATCH v3 1/7] ethdev: add more annotations Helin Zhang
2014-10-13 6:12 ` [dpdk-dev] [PATCH v4 0/7] Support configuring hash functions Helin Zhang
2014-10-13 6:12 ` [dpdk-dev] [PATCH v4 1/7] ethdev: add more annotations Helin Zhang
2014-10-13 6:12 ` [dpdk-dev] [PATCH v4 2/7] ethdev: add interfaces and relevant for filter control Helin Zhang
2014-10-13 6:12 ` [dpdk-dev] [PATCH v4 3/7] ethdev: add structures and enum for hash " Helin Zhang
2014-10-13 6:12 ` [dpdk-dev] [PATCH v4 4/7] i40e: add hash filter control implementation Helin Zhang
2014-10-13 10:23 ` Chilikin, Andrey
2014-10-14 0:42 ` Zhang, Helin
2014-10-13 6:12 ` [dpdk-dev] [PATCH v4 5/7] i40e: add hardware initialization Helin Zhang
2014-10-13 6:12 ` [dpdk-dev] [PATCH v4 6/7] i40e: Use constant random hash keys Helin Zhang
2014-10-13 6:12 ` [dpdk-dev] [PATCH v4 7/7] app/testpmd: add commands to support hash filter control Helin Zhang
2014-10-13 12:27 ` Zhan, Zhaochen [this message]
2014-10-14 3:32 ` [dpdk-dev] [PATCH v4 0/7] Support configuring hash functions Wu, Jingjing
2014-10-21 3:14 ` [dpdk-dev] [PATCH v5 0/5] " Helin Zhang
2014-10-21 3:14 ` [dpdk-dev] [PATCH v5 1/5] i40e: Use constant random hash keys Helin Zhang
2014-11-03 7:49 ` Thomas Monjalon
2014-11-03 8:18 ` Zhang, Helin
2014-11-03 8:59 ` Thomas Monjalon
2014-11-06 7:52 ` Zhang, Helin
2014-11-11 3:30 ` Zhang, Helin
2014-10-21 3:14 ` [dpdk-dev] [PATCH v5 2/5] ethdev: add enum type and relevant structures for hash filter control Helin Zhang
2014-11-03 7:57 ` Thomas Monjalon
2014-11-06 3:41 ` Zhang, Helin
2014-11-06 8:43 ` Thomas Monjalon
2014-11-06 8:54 ` Zhang, Helin
2014-11-11 3:27 ` Zhang, Helin
2014-11-11 6:46 ` Zhang, Helin
2014-11-11 21:08 ` Thomas Monjalon
2014-11-12 5:52 ` Zhang, Helin
2014-11-12 9:30 ` Thomas Monjalon
2014-11-12 14:22 ` Zhang, Helin
2014-10-21 3:14 ` [dpdk-dev] [PATCH v5 3/5] i40e: add hash filter control implementation Helin Zhang
2014-10-21 3:14 ` [dpdk-dev] [PATCH v5 4/5] i40e: add hardware initialization Helin Zhang
2014-10-21 3:14 ` [dpdk-dev] [PATCH v5 5/5] app/testpmd: add commands to support hash filter Helin Zhang
2014-11-07 3:45 ` [dpdk-dev] [PATCH v5 0/5] Support configuring hash functions Chen, Erlu
2014-11-07 6:12 ` Chen, Erlu
2014-11-19 14:58 ` [dpdk-dev] [PATCH v6 0/3] " Helin Zhang
2014-11-19 14:58 ` [dpdk-dev] [PATCH v6 1/3] i40e: Use constant as the default hash keys Helin Zhang
2014-11-19 14:58 ` [dpdk-dev] [PATCH v6 2/3] i40e: support of controlling hash functions Helin Zhang
2014-11-19 14:58 ` [dpdk-dev] [PATCH v6 3/3] app/testpmd: add commands to support " Helin Zhang
2014-11-27 15:45 ` [dpdk-dev] [PATCH v6 0/3] Support configuring " Thomas Monjalon
2014-11-27 16:17 ` Zhang, Helin
2014-11-28 12:14 ` [dpdk-dev] [PATCH v7 0/4] " Helin Zhang
2014-11-28 12:14 ` [dpdk-dev] [PATCH v7 1/4] ethdev: code style fixes Helin Zhang
2014-11-28 12:14 ` [dpdk-dev] [PATCH v7 2/4] i40e: use constant as the default hash keys Helin Zhang
2014-11-28 12:14 ` [dpdk-dev] [PATCH v7 3/4] i40e: support of controlling hash functions Helin Zhang
2014-11-28 12:52 ` Ananyev, Konstantin
2014-11-28 12:14 ` [dpdk-dev] [PATCH v7 4/4] app/testpmd: app/testpmd: add commands to support " Helin Zhang
2014-12-02 2:19 ` [dpdk-dev] [PATCH v8 0/4] Support configuring " Helin Zhang
2014-12-02 2:19 ` [dpdk-dev] [PATCH v8 1/4] ethdev: code style fixes Helin Zhang
2014-12-02 2:19 ` [dpdk-dev] [PATCH v8 2/4] i40e: use constant as the default hash keys Helin Zhang
2014-12-02 2:19 ` [dpdk-dev] [PATCH v8 3/4] i40e: support of controlling hash functions Helin Zhang
2015-01-20 7:54 ` Thomas Monjalon
2015-01-21 0:13 ` Zhang, Helin
2015-01-22 7:44 ` Zhang, Helin
2014-12-02 2:19 ` [dpdk-dev] [PATCH v8 4/4] app/testpmd: add commands to support " Helin Zhang
2014-12-02 13:15 ` [dpdk-dev] [PATCH v8 0/4] Support configuring " Ananyev, Konstantin
2015-01-22 7:36 ` [dpdk-dev] [PATCH v9 0/5] " Helin Zhang
2015-01-22 7:36 ` [dpdk-dev] [PATCH v9 1/5] i40e: use constant as the default hash keys Helin Zhang
2015-01-22 7:36 ` [dpdk-dev] [PATCH v9 2/5] ethdev: code style fixes Helin Zhang
2015-01-22 7:36 ` [dpdk-dev] [PATCH v9 3/5] ethdev: support of configuring hash functions Helin Zhang
2015-01-22 7:36 ` [dpdk-dev] [PATCH v9 4/5] i40e: support of controlling " Helin Zhang
2015-01-22 7:36 ` [dpdk-dev] [PATCH v9 5/5] app/testpmd: add commands to support " Helin Zhang
[not found] ` <5028514.8nkR6oWFO2@xps13>
2015-02-03 2:35 ` Zhang, Helin
2014-09-30 6:20 ` [dpdk-dev] [PATCH v3 2/7] ethdev: add interfaces and relevant for filter control Helin Zhang
2014-09-30 6:20 ` [dpdk-dev] [PATCH v3 3/7] ethdev: add structures and enum for hash " Helin Zhang
2014-09-30 6:20 ` [dpdk-dev] [PATCH v3 4/7] i40e: add hash filter control implementation Helin Zhang
2014-09-30 6:20 ` [dpdk-dev] [PATCH v3 5/7] i40e: add hardware initialization Helin Zhang
2014-09-30 6:20 ` [dpdk-dev] [PATCH v3 6/7] i40e: Use constant random hash keys Helin Zhang
2014-09-30 6:20 ` [dpdk-dev] [PATCH v3 7/7] app/testpmd: add commands to support hash filter control Helin Zhang
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=6D0EE020084B194084D70B0A8D2207B8EDC838@SHSMSX104.ccr.corp.intel.com \
--to=zhaochen.zhan@intel.com \
--cc=dev@dpdk.org \
--cc=helin.zhang@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).