From patchwork Sun Jul 16 13:44:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yaqi Tang X-Patchwork-Id: 129556 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 A4B7542E8C; Sun, 16 Jul 2023 15:45:13 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9B9B742BAC; Sun, 16 Jul 2023 15:45:13 +0200 (CEST) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mails.dpdk.org (Postfix) with ESMTP id 9E8E24013F for ; Sun, 16 Jul 2023 15:45:11 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1689515111; x=1721051111; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=aMXU+pmqQBfInUiEblzGrYCq3DHuuyZj9FBycb7FO8M=; b=Bwg0z2o1e5WTtxmraAfLSUjrA5ilm2xgqB8pDdPsRbKrBJRl+rQ7gyFb fRG9I/8vfax+IB8aQqk9PYP4Vd1Xs6gP6tOVYm+Fk9QzKw7hOz7l09+w7 /nMPys2D2l78B9+W1DqUdOlf6LzqJpuLrEiQgcR/R/O0ujh+np5fYOK3h Ak47Gvtuhn/kl7rMFTdKbCHZrdVSqZciNy0jekmBl+HjD4DZ1egKktwPp nqDV/eXC0+k7qt0RqS9kZmMlcLJWEA2NzB2DAGOim0HNKtEoNTYmfeD7h bvo85o8jyla39fI5jV4jyBpzy0eaJihbYMf7D8jScIlpwfNJlgCdZaE3V Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10773"; a="368400779" X-IronPort-AV: E=Sophos;i="6.01,210,1684825200"; d="scan'208";a="368400779" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Jul 2023 06:45:11 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10773"; a="1053618699" X-IronPort-AV: E=Sophos;i="6.01,210,1684825200"; d="scan'208";a="1053618699" Received: from dpdk-yaqi.sh.intel.com ([10.67.118.189]) by fmsmga005.fm.intel.com with ESMTP; 16 Jul 2023 06:45:10 -0700 From: Yaqi Tang To: dts@dpdk.org Cc: Yaqi Tang Subject: [PATCH V1 2/3] test_plans/mev_cpfl_hairpin_queue: mev cpfl support hairpin queue Date: Sun, 16 Jul 2023 13:44:15 +0000 Message-Id: <20230716134416.3220611-3-yaqi.tang@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230716134416.3220611-1-yaqi.tang@intel.com> References: <20230716134416.3220611-1-yaqi.tang@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 Enabling Port2Port forwarding as hairpin queue implementation in dpdk cpfl PMD. Signed-off-by: Yaqi Tang --- .../mev_cpfl_hairpin_queue_test_plan.rst | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 test_plans/mev_cpfl_hairpin_queue_test_plan.rst diff --git a/test_plans/mev_cpfl_hairpin_queue_test_plan.rst b/test_plans/mev_cpfl_hairpin_queue_test_plan.rst new file mode 100644 index 00000000..62044776 --- /dev/null +++ b/test_plans/mev_cpfl_hairpin_queue_test_plan.rst @@ -0,0 +1,84 @@ +============================== +MEV CPFL Support Hairpin Queue +============================== + +Description +=========== +Enabling Port2Port forwarding as hairpin queue implementation in dpdk cpfl PMD. +launch testpmd not start forwarding, multi hairpin queues receive and transmit packet; +start forwarding, multi data queues receive and transmit packet; + +Prerequisites +============= +1. CI release >= MEV 0.81(3921) + +2. During IMC boot, press 'N' when you see 'start init app and auxiliary script [Y/N]'. + cd /etc/dpcp + cp cfg/cp_init_use_case_2.cfg ./cp_init.cfg + cp cp_init.cfg cp_init.cfg.bak + sed -i 's/pf_allowed_to_create_p2p = 5;/pf_allowed_to_create_p2p = 8;/g' cp_init.cfg + sed -i 's/cpf_host = 4;/cpf_host = 0;/g' cp_init.cfg + +3. Update customized package + Copy package to /etc/dpcp/package/ and rename with default_pkg.pkg. + cd /etc/dpcp/package/ + rm default_pkg.pkg + ssh-keygen -f "/root/.ssh/known_hosts" -R "100.0.0.100" + scp default_pkg.pkg root@100.0.0.100:/etc/dpcp/package/ + +4. Run /etc/init.d/run_default_init_app + +Test Case +========= +Common Steps +------------ +1. Launch testpmd but not start forwarding. + +2. Configure port to receive packets on IMC:: + cli_client --query --config --verbose + devmem 0x202920C100 64 0x804 + +3. Create rule on IMC:: + vi rule_1.txt + opcode=0x1303 prof_id=0x34 sub_prof_id=0x0 cookie=0xa2b87 key=0x18,0x0,00,00,00,00,0xde,0xad,0xbe,0xef,0x20,0x24,0x0,0x0,0x0,0x0,00,00,00,00,00,00,0xa,0x2,0x1d,0x64,00,00,00,00,00,00,00,00,00,00,00,00, + 0xa,0x2,0x1d,0x2,00,00,00,00,00,00,00,00,00,00,00,00 act=set_vsi{act_val=0 val_type=2 dst_pe=0 slot=0x0} act=set_q{qnum=0x151 no_implicit_vsi=1 prec=5} act=count{counter_id=0x10 slot=0x0 prec=0x3} + + cli_client -x -f rule_1.txt + +4. Send match packet from tester and check tester can receive the transmit packet:: + sendp([Ether(dst="de:ad:be:ef:20:24")/IP(src="10.2.29.100", dst="10.2.29.2")/UDP()],iface="ens21f0",count=1) + + tcpdump -i ens21f0 -env + +5. Start testpmd and send mismatch packets, check testpmd can receive and transmit packets:: + testpmd>start + testpmd>set verbose 1 + testpmd>show port stats all + testpmd>stop + testpmd>quit + + Mismatch pkts:: + sendp([Ether(src="00:11:22:33:44:55", dst="02:70:80:C6:67:CE")/IP(src="192.168.0.2",dst="192.168.0.3")/("X"*480)], iface="enp24s0f0") + sendp([Ether(src="00:11:22:33:44:55", dst="02:70:80:C6:67:CE")/IPv6(src="2001::2",dst="2001::3")/("X"*480)], iface="enp24s0f0") + sendp([Ether(src="00:11:22:33:44:55", dst="02:70:80:C6:67:CE")/IP(src="10.2.28.12", dst="10.2.28.22")/UDP(sport=1026, dport=1027)/("X"*480)], iface="enp24s0f0") + sendp([Ether(src="00:11:22:33:44:55", dst="02:70:80:C6:67:CE")/IP(src="10.2.28.12", dst="10.2.28.22")/TCP(sport=1026, dport=1027)/("X"*480)], iface="enp24s0f0") + sendp([Ether(src="00:11:22:33:44:55", dst="02:70:80:C6:67:CE")/IP(src="10.2.28.12", dst="10.2.28.22")/SCTP(sport=1026, dport=1027)/("X"*480)], iface="enp24s0f0") + sendp([Ether(src="00:11:22:33:44:55", dst="02:70:80:C6:67:CE")/IPv6(src="2001::2",dst="2001::3")/UDP(sport=1026, dport=1027)/("X"*480)], iface="enp24s0f0") + sendp([Ether(src="00:11:22:33:44:55", dst="02:70:80:C6:67:CE")/IPv6(src="2001::2",dst="2001::3")/TCP(sport=1026, dport=1027)/("X"*480)], iface="enp24s0f0") + sendp([Ether(src="00:11:22:33:44:55", dst="02:70:80:C6:67:CE")/IPv6(src="2001::2",dst="2001::3")/SCTP(sport=1026, dport=1027)/("X"*480)], iface="enp24s0f0") + +Test case 1: single_data_hairpin_queue +-------------------------------------- +./dpdk-testpmd -l 1-2 -n 4 -a af:00.6,vport=0 -- -i --rxq=1 --txq=1 --hairpinq=1 --hairpin-mode=0 + +Test case 2: multi_data_queues_single_hairpin_queue +--------------------------------------------------- +./dpdk-testpmd -l 1-2 -n 4 -a ca:00.6,vport=0 -- -i --rxq=16 --txq=16 --hairpinq=1 --hairpin-mode=0 + +Test case 3: single_data_queue_multi_hairpin_queues +--------------------------------------------------- +./dpdk-testpmd -l 1-2 -n 4 -a ca:00.6,vport=0 -- -i --rxq=1 --txq=1 --hairpinq=16 --hairpin-mode=0 + +Test case 4: multi_data_hairpin_queues +-------------------------------------- +./dpdk-testpmd -l 1-2 -n 4 -a ca:00.6,vport=0 -- -i --rxq=16 --txq=16 --hairpinq=16 --hairpin-mode=0