From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 7F5CFA00C4; Tue, 3 Jan 2023 09:40:02 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7AE3942B7E; Tue, 3 Jan 2023 09:40:02 +0100 (CET) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mails.dpdk.org (Postfix) with ESMTP id 70BB241133 for ; Tue, 3 Jan 2023 09:40:00 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1672735200; x=1704271200; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=ouO5GHJ4kLzamTyWGpPrdCGU0UWb/LH219ZAeYDf/Qo=; b=XCLWUXADQ+ikh3dEnq0fXNqYJ9YRmZHM6EgR8ocXgLcFzrYUjFjIsJP8 zPNT/fbCheRD6RxZKy6d0ZAUwtTpi/ljQE6tAxb5T/XSGCkOLKG2aqzyX 6mUyKANqQ+Bm/vSd2SA/R1RZWyZO39+VILPUMBMs+YAHvppwSJC5plfm3 oKgk8rGHEPdhygwJVb8ENWj+CkX46pAvKUE8zWxVKQ0rSlNkudgHXUGDW BpOfQtunBobsUZWCdcZe8s9C4XUbta+CvHD69jAeZGvgPD6YrIPMzjn49 8FldeKm62aCuh2tbWgb9niE+EMSfIitKOzzTphELWyUapyxDvM4I6zpvK w==; X-IronPort-AV: E=McAfee;i="6500,9779,10578"; a="322847059" X-IronPort-AV: E=Sophos;i="5.96,296,1665471600"; d="scan'208";a="322847059" 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:00 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10578"; a="654706431" X-IronPort-AV: E=Sophos;i="5.96,296,1665471600"; d="scan'208";a="654706431" Received: from dpdk-lijuan-icelake4.sh.intel.com ([10.67.119.188]) by orsmga002.jf.intel.com with ESMTP; 03 Jan 2023 00:39:58 -0800 From: Yingya Han To: dts@dpdk.org Cc: Yingya Han Subject: [dts][PATCH V1 3/9]test_plans: add testpmd_perf test plan Date: Tue, 3 Jan 2023 08:39:45 +0000 Message-Id: <20230103083951.1553786-4-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 Content-Transfer-Encoding: 8bit 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 --- test_plans/testpmd_perf_test_plan.rst | 171 ++++++++++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 test_plans/testpmd_perf_test_plan.rst diff --git a/test_plans/testpmd_perf_test_plan.rst b/test_plans/testpmd_perf_test_plan.rst new file mode 100644 index 00000000..b0e1a730 --- /dev/null +++ b/test_plans/testpmd_perf_test_plan.rst @@ -0,0 +1,171 @@ +.. SPDX-License-Identifier: BSD-3-Clause + Copyright(c) 2022 Intel Corporation + +=========================================== +TestPmd rfc2544 test with IPV4/IPV6 packets +=========================================== + +This document provides rfc2544 tests for the userland Ethernet Controller Poll Mode Driver (PMD). +The userland PMD application runs the ``IO forwarding mode`` test which described in the PMD test +plan document with different parameters for the configuration of NIC ports. + +RFC2544 Zero packet loss test case: Used to determine the DUT throughput as defined in +RFC1242(https://www.ietf.org/rfc/rfc1242.txt). Note RFC6201 +https://www.ietf.org/rfc/rfc6201.txt has updated RFC2544 and RFC1242. Please check the link +for more details. In this case, RFC2544 test uses dpdk-testpmd as test application. + +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 dpdk-testpmd 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 +========= +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. + +Common Steps +------------ +1. Bind tested ports to vfio-pci:: + + #./usertools/dpdk-devbind.py -s + 0000:17:00.0 'Device 1592' if=ens5f0 drv=ice 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 IPv4 packets: + + +-------+-----------------------+ + | # | IPv4 (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 | + +-------+-----------------------+ + + Routing table for IPv6 packets: + + +-------+--------------------------------------------+ + | # | IPv6 (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: + - 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: testpmd rfc2544 performance with IPv4/IPv6 Packets +------------------------------------------------------------- + +1. Bind tested ports to dpdk driver as common step 1. + +2. Start dpdk-testpmd:: + + /app/dpdk-testpmd -l 5,6 -n 8 --force-max-simd-bitwidth=512 \ + -- -i --portmask=0x1 --rxq=1 --txq=1 --txd=1024 --rxd=1024 --forward=io \ + --nb-cores=1 + + Note: + -force-max-simd-bitwidth: This setting is used to determine the vector path for component selection. + And the default is avx2. + +3. Configure traffic generator to send traffic as common step 2. + +4. Record Test results as common step 3. -- 2.34.1