From: Yingya Han <yingyax.han@intel.com>
To: dts@dpdk.org
Cc: Yingya Han <yingyax.han@intel.com>
Subject: [dts][PATCH V1 5/9]test_plans: add vf_l3fwd_kernelpf test plan
Date: Tue, 3 Jan 2023 08:39:47 +0000 [thread overview]
Message-ID: <20230103083951.1553786-6-yingyax.han@intel.com> (raw)
In-Reply-To: <20230103083951.1553786-1-yingyax.han@intel.com>
Signed-off-by: Yingya Han <yingyax.han@intel.com>
---
test_plans/vf_l3fwd_kernelpf_test_plan.rst | 241 +++++++++++++++++++++
1 file changed, 241 insertions(+)
create mode 100644 test_plans/vf_l3fwd_kernelpf_test_plan.rst
diff --git a/test_plans/vf_l3fwd_kernelpf_test_plan.rst b/test_plans/vf_l3fwd_kernelpf_test_plan.rst
new file mode 100644
index 00000000..645cadfb
--- /dev/null
+++ b/test_plans/vf_l3fwd_kernelpf_test_plan.rst
@@ -0,0 +1,241 @@
+.. SPDX-License-Identifier: BSD-3-Clause
+ Copyright(c) 2022 Intel Corporation
+
+================================
+VF L3 forwarding kernel PF tests
+================================
+
+This document provides benchmark test for NIC VFs which are created from
+kernel PFs or. These tests use l3fwd as a simple forwarder between NIC vfs.
+The goal of this test plan is to have a tested benchmark between NIC vfs.
+The Layer-3 Forwarding performance results are produced using ``l3fwd`` application.
+For detail test plan, please refer to ``l3fwd_test_plan.rst``.
+
+Prerequisites
+=============
+
+Topology
+--------
+It requires at least 1 port connected traffic generator::
+ Port0 --- TG0
+
+2 ports::
+ Port0 --- TG0
+ Port1 --- TG1
+
+4 ports::
+ Port0 --- TG0
+ Port1 --- TG1
+ Port2 --- TG2
+ Port3 --- TG3
+
+Hardware
+--------
+This suite focus on l3fwd application, so any standard Ethernet Network Adapter is qualified.
+
+Software
+--------
+dpdk: git clone http://dpdk.org/git/dpdk
+trex: git clone http://trex-tgn.cisco.com/trex/release/v2.93.tar.gz
+
+
+Test Case
+=========
+
+The suite includes the throughput tests and rfc544 tests.
+1. Throughput:
+
+ - The test case check the throughput result with lpm/em mode and ipv4/ipv6, in the case,
+ we will send the bi-direction flows with line rate, then we can check the passthrough rate.
+
+2. RFC2544 Zero packet loss test:
+
+ - Send a specific number of frames at a specific rate through the DUT and then
+ count the frames that are transmitted by the DUT. If the count of offered frames is not equal
+ to the count of received frames, the rate of the offered stream is reduced and the test is rerun.
+ The throughput is the fastest rate at which the count of test frames transmitted by the DUT is
+ equal to the number of test frames sent to it by the test equipment.
+
+The l3fwd application has a number of command line options, here list the key options will be tested::
+
+ ./dpdk-l3fwd [EAL options] -- -p PORTMASK
+ [--force-max-simd-bitwidth=max-simd-bitwidth]
+ --config(port,queue,lcore)[,(port,queue,lcore)]
+ [--rx-queue-size NPKTS]
+ [--tx-queue-size NPKTS]
+ [--parse-ptype]
+ [-L]|[-E]
+ ...
+ Note:
+ --force-max-simd-bitwidth: This setting is used to determine the vector path for component selection.
+ And the default is avx2.
+ --rx-queue-size: Rx queue size in decimal and default is 1024.
+ --tx-queue-size: Tx queue size in decimal and default is 1024.
+ --parse-ptype: Optional, set to use software to analyze packet type.
+ Without this option, hardware will check the packet type.
+ [-L]|[-E]: L3fwd uses the parameters "-L" and "-E" to correspond to LPM and EM modes respectively.
+ And the default is LPM mode.
+
+Common Steps
+------------
+1. Bind PF ports to kernel driver, i40e or ice, then create 1 VF from each PF,
+ take E810 for example::
+
+ <dpdk_dir>#echo 1 > /sys/bus/pci/devices/0000\:17\:00.0/sriov_numvfs
+
+ Set vf mac address::
+
+ <dpdk_dir>#ip link set ens5f0 vf 0 mac 00:12:34:56:78:01
+
+ Bind all the created VFs to vfio-pci::
+
+ <dpdk_dir>#./usertools/dpdk-devbind.py -s
+ 0000:17:00.0 'Device 1592' if=ens5f0 drv=ice unused=vfio-pci
+ 0000:17:01.0 'Device 1592' if=ens5f0v0 drv=iavf unused=vfio-pci
+ <dpdk_dir>#./usertools/dpdk-devbind.py -b vfio-pci <pci device id>
+ <dpdk_dir>#./usertools/dpdk-devbind.py -b vfio-pci 0000:17:01.0
+
+2. Configure traffic generator to send traffic
+
+ Routing table for IPv4 packets
+ - In LPM mode, the LPM table used for packet routing is:
+
+ +-------+-----------------------+
+ | # | LPM prefix (IP/length)|
+ +=======+=======================+
+ | 0 | 198.18.0.0/24 |
+ +-------+-----------------------+
+ | 1 | 198.18.1.0/24 |
+ +-------+-----------------------+
+ | 2 | 198.18.2.0/24 |
+ +-------+-----------------------+
+ | 3 | 198.18.3.0/24 |
+ +-------+-----------------------+
+
+ - In EM mode, the EM table used for packet routing is:
+
+ +-------+-------------+---------+-------------+-----------+-----------+
+ | Entry | IPv4 | IPv4 | Port | Port | L4 |
+ | # | destination | source | destination | source | protocol |
+ | | address | address | | | |
+ +=======+=============+=========+=============+===========+===========+
+ | 0 | 198.18.0.0 | Random | 10 | 1 | UDP |
+ +-------+-------------+---------+-------------+-----------+-----------+
+ | 1 | 198.18.1.0 | Random | 10 | 1 | UDP |
+ +-------+-------------+---------+-------------+-----------+-----------+
+ | 2 | 198.18.2.0 | Random | 11 | 1 | UDP |
+ +-------+-------------+---------+-------------+-----------+-----------+
+ | 3 | 198.18.3.0 | Random | 11 | 1 | UDP |
+ +-------+-------------+---------+-------------+-----------+-----------+
+
+ Routing table for IPv6 packets
+ - In LPM mode, the LPM table used for packet routing is:
+
+ +-------+--------------------------------------------+
+ | # | LPM prefix (IP/length) |
+ +=======+============================================+
+ | 0 | 2001:0200:0000:0000:0000:0000:0000:0000/64 |
+ +-------+--------------------------------------------+
+ | 1 | 2001:0200:0000:0001:0000:0000:0000:0000/64 |
+ +-------+--------------------------------------------+
+ | 2 | 2001:0200:0000:0002:0000:0000:0000:0000/64 |
+ +-------+--------------------------------------------+
+ | 3 | 2001:0200:0000:0003:0000:0000:0000:0000/64 |
+ +-------+--------------------------------------------+
+
+ - In EM mode, the EM table used for packet routing is:
+
+ +-------+---------------------------+---------------------------+-------------+--------+----------+
+ | Entry | IPv6 destination address | IPv6 source address | Port | Port | L4 |
+ | | | | destination | source | protocol |
+ +=======+===========================+===========================+=============+========+==========+
+ | 0 | 2001:0200:0000:0000:0000:\| | | | |
+ | | 0000:0000:0000 | Random | 10 | 1 | UDP |
+ +-------+---------------------------+---------------------------+-------------+--------+----------+
+ | 1 | 2001:0200:0000:0001:0000:\| | | | |
+ | | 0000:0000:0000 | Random | 10 | 1 | UDP |
+ +-------+---------------------------+---------------------------+-------------+--------+----------+
+ | 2 | 2001:0200:0000:0002:0000:\| | | | |
+ | | 0000:0000:0000 | Random | 11 | 1 | UDP |
+ +-------+---------------------------+---------------------------+-------------+--------+----------+
+ | 3 | 2001:0200:0000:0003:0000:\| | | | |
+ | | 0000:0000:0000 | Random | 11 | 1 | UDP |
+ +-------+---------------------------+---------------------------+-------------+--------+----------+
+
+
+ The flows need to be configured and started by the traffic generator:
+ - IPv4 packets
+
+ +------+---------+------------+---------+
+ | Flow | Traffic | IPv4 | IPv4 |
+ | | Gen. | Dst. | Src. |
+ | | Port | Address | Address |
+ +======+=========+============+=========+
+ | 1 | TG0 | 198.18.1.1 | Any Ip |
+ +------+---------+------------+---------+
+ | 2 | TG1 | 198.18.0.1 | Any Ip |
+ +------+---------+------------+---------+
+ | 3 | TG2 | 198.18.3.1 | Any Ip |
+ +------+---------+------------+---------+
+ | 4 | TG3 | 198.18.2.1 | Any Ip |
+ +------+---------+------------+---------+
+
+ Set the packet length : 64 bytes-1518 bytes
+ The IPV4 Src Address increase with the num 1024.
+
+ - IPv6 packets
+
+ +------+---------+-----------------------------------------+---------+
+ | Flow | Traffic | | IPv6 |
+ | | Gen. | IPV6 Dst. Address | Src. |
+ | | Port | | Address |
+ +======+=========+=========================================+=========+
+ | 1 | TG0 | 2001:0200:0000:0000:0000:0000:0000:0000 | Any Ip |
+ +------+---------+-----------------------------------------+---------+
+ | 2 | TG1 | 2001:0200:0000:0001:0000:0000:0000:0000 | Any Ip |
+ +------+---------+-----------------------------------------+---------+
+ | 3 | TG2 | 2001:0200:0000:0002:0000:0000:0000:0000 | Any Ip |
+ +------+---------+-----------------------------------------+---------+
+ | 4 | TG3 | 2001:0200:0000:0003:0000:0000:0000:0000 | Any Ip |
+ +------+---------+-----------------------------------------+---------+
+
+ Set the packet length : 66 bytes-1518 bytes
+ The IPV6 Src Address increase with the num 1024.
+
+3. Test result table
+
+ +-----------+------------+-------------+---------+
+ | Fwd_core | Frame Size | Throughput | Rate |
+ +===========+============+=============+=========+
+ | 1C/1T | 64 | xxxxx Mpps | xxx % |
+ +-----------+------------+-------------+---------+
+ | 1C/1T | ... | xxxxx Mpps | xxx % |
+ +-----------+------------+-------------+---------+
+ | 2C/2T | 64 | xxxxx Mpps | xxx % |
+ +-----------+------------+-------------+---------+
+ | 2C/2T | ... | xxxxx Mpps | xxx % |
+ +-----------+------------+-------------+---------+
+ | 4C/4T | 64 | xxxxx Mpps | xxx % |
+ +-----------+------------+-------------+---------+
+ | 4C/4T | ... | xxxxx Mpps | xxx % |
+ +-----------+------------+-------------+---------+
+ | 8C/8T | 64 | xxxxx Mpps | xxx % |
+ +-----------+------------+-------------+---------+
+ | 8C/8T | ... | xxxxx Mpps | xxx % |
+ +-----------+------------+-------------+---------+
+
+
+Test Case: VF L3 Forwarding (in EM/LPM Mode) with IPv4/IPv6 Packets
+-------------------------------------------------------------------
+
+1. Bind VF ports to dpdk driver as common step 1.
+
+2. Launch l3fwd::
+
+ <build_dir>/examples/dpdk-l3fwd -l 5-8 -n 8 --force-max-simd-bitwidth=512 \
+ -- -p 0x1 --config "(0,0,5),(0,1,6),(0,2,7),(0,3,8)" --rx-queue-size 1024 \
+ --tx-queue-size 1024 --parse-ptype
+
+3. Configure traffic generator to send traffic as common step 2.
+
+4. Record Test results as common step 3.
--
2.34.1
next prev parent reply other threads:[~2023-01-03 8:40 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-03 8:39 [dts][PATCH V1 0/9]test_plans: add perf test plans Yingya Han
2023-01-03 8:39 ` [dts][PATCH V1 1/9]test_plans: add l3fwd_lpm_ipv4_rfc2544 test plan Yingya Han
2023-01-03 8:39 ` [dts][PATCH V1 2/9]test_plans: add l3fwd_lpm_ipv6 " Yingya Han
2023-01-03 8:39 ` [dts][PATCH V1 3/9]test_plans: add testpmd_perf " Yingya Han
2023-01-03 8:39 ` [dts][PATCH V1 4/9]test_plans: add vf_l3fwd_em_kernelpf " Yingya Han
2023-01-03 8:39 ` Yingya Han [this message]
2023-01-03 8:39 ` [dts][PATCH V1 6/9]test_plans: add vf_l3fwd_lpm_ipv4_kernelpf " Yingya Han
2023-01-03 8:39 ` [dts][PATCH V1 7/9]test_plans: add vf_l3fwd_lpm_ipv4_rfc2544_kernelpf " Yingya Han
2023-01-03 8:39 ` [dts][PATCH V1 8/9]test_plans: add vf_l3fwd_lpm_ipv6_kernelpf " Yingya Han
2023-01-05 14:25 ` lijuan.tu
2023-01-03 8:39 ` [dts][PATCH V1 9/9]test_plans: add the index of " Yingya Han
2023-01-05 1:58 ` Chu, Haijun
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=20230103083951.1553786-6-yingyax.han@intel.com \
--to=yingyax.han@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).