From patchwork Tue Jan 3 08:39:50 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yingya Han X-Patchwork-Id: 121524 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id A874BA00C2; Tue, 3 Jan 2023 09:40:09 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A4A3B42D28; Tue, 3 Jan 2023 09:40:09 +0100 (CET) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mails.dpdk.org (Postfix) with ESMTP id 3A56D42D28 for ; Tue, 3 Jan 2023 09:40:08 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1672735208; x=1704271208; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=dOsWWBBG9ROtRf1BhZnYD/lCaqPmHmhkrUMVuJ+kd9w=; b=mFt4LLsMrZ9AEni2QqwCOZ6vMFdKbzXqVsPf3HO9jEXOchf92DEsC8oJ 8E2Nxbrww/5PTYFYuAfb7HroQaZ9qn8Q+OI3+3z96lp9AhVmqwEeAYMdU 3Pzw4rxxi9Dq74uJwGNZ15nd9ZaP0TdAeqtCWH2EhVntXL+n4FsZ+ci4Z LcULviUEDiP++I8SZR6NqSeczgv2l0HyRcDNiCjKGeJkbX2EjVZS2uSpo ewq1GYMkqeDT/XIT6hybt75NGCovRJSE9TBgRP747EDgPBwmWW7DTkZ07 LiPo6bFPUhurWDAxAu4YmHaHCT/Q5kvdLYvVwZ3aA3KwLfhw7zKiE67Jg Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10578"; a="322847089" X-IronPort-AV: E=Sophos;i="5.96,296,1665471600"; d="scan'208";a="322847089" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Jan 2023 00:40:07 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10578"; a="654706500" X-IronPort-AV: E=Sophos;i="5.96,296,1665471600"; d="scan'208";a="654706500" Received: from dpdk-lijuan-icelake4.sh.intel.com ([10.67.119.188]) by orsmga002.jf.intel.com with ESMTP; 03 Jan 2023 00:40:05 -0800 From: Yingya Han To: dts@dpdk.org Cc: Yingya Han Subject: [dts][PATCH V1 8/9]test_plans: add vf_l3fwd_lpm_ipv6_kernelpf test plan Date: Tue, 3 Jan 2023 08:39:50 +0000 Message-Id: <20230103083951.1553786-9-yingyax.han@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230103083951.1553786-1-yingyax.han@intel.com> References: <20230103083951.1553786-1-yingyax.han@intel.com> MIME-Version: 1.0 X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dts-bounces@dpdk.org Signed-off-by: Yingya Han Acked-by: Lijuan Tu --- .../vf_l3fwd_lpm_ipv6_kernelpf_test_plan.rst | 159 ++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 test_plans/vf_l3fwd_lpm_ipv6_kernelpf_test_plan.rst diff --git a/test_plans/vf_l3fwd_lpm_ipv6_kernelpf_test_plan.rst b/test_plans/vf_l3fwd_lpm_ipv6_kernelpf_test_plan.rst new file mode 100644 index 00000000..17f02b98 --- /dev/null +++ b/test_plans/vf_l3fwd_lpm_ipv6_kernelpf_test_plan.rst @@ -0,0 +1,159 @@ +.. SPDX-License-Identifier: BSD-3-Clause + Copyright(c) 2022 Intel Corporation + +============================================================= +VF L3 forwarding kernel PF test in LPM mode with IPV6 packets +============================================================= + +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 test case check the throughput result with lpm mode and ipv6, in the case, +we will send the bi-direction flows with line rate, then we can check the passthrough rate. + +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:: + + #echo 1 > /sys/bus/pci/devices/0000\:17\:00.0/sriov_numvfs + + Set vf mac address:: + + #ip link set ens5f0 vf 0 mac 00:12:34:56:78:01 + + Bind all the created VFs to vfio-pci:: + + #./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 + #./usertools/dpdk-devbind.py -b vfio-pci + #./usertools/dpdk-devbind.py -b vfio-pci 0000:17:01.0 + +2. Configure traffic generator to send traffic + + 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 | + +-------+--------------------------------------------+ + + The flows need to be configured and started by the traffic generator: + - 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 | 66 | xxxxx Mpps | xxx % | + +-----------+------------+-------------+---------+ + | 1C/1T | ... | xxxxx Mpps | xxx % | + +-----------+------------+-------------+---------+ + | 2C/2T | 66 | xxxxx Mpps | xxx % | + +-----------+------------+-------------+---------+ + | 2C/2T | ... | xxxxx Mpps | xxx % | + +-----------+------------+-------------+---------+ + | 4C/4T | 66 | xxxxx Mpps | xxx % | + +-----------+------------+-------------+---------+ + | 4C/4T | ... | xxxxx Mpps | xxx % | + +-----------+------------+-------------+---------+ + | 8C/8T | 66 | xxxxx Mpps | xxx % | + +-----------+------------+-------------+---------+ + | 8C/8T | ... | xxxxx Mpps | xxx % | + +-----------+------------+-------------+---------+ + + +Test Case: test_perf_vf_throughput_ipv6_lpm +------------------------------------------- + +1. Bind VF ports to dpdk driver as common step 1. + +2. Launch l3fwd:: + + /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.