From patchwork Fri Aug 25 16:19:22 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Jiale, SongX" X-Patchwork-Id: 130745 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 11227430FF; Fri, 25 Aug 2023 10:10:48 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id ACBDD42D13; Fri, 25 Aug 2023 10:10:47 +0200 (CEST) Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.43]) by mails.dpdk.org (Postfix) with ESMTP id D9C5741148 for ; Fri, 25 Aug 2023 10:10:46 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1692951047; x=1724487047; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=5z2rXUGTxa7+Mi/hMn/gqcMxr7v2KH0dMBCTPqq90k0=; b=jU2eXxe+Wt2Z3CETJgt9CHjBJbwWhGrruhxS3YV1jRuvswERk5o/LLdj 7M4/skbVAzgcTfo1+dsuzxw9fKUcdwTfsO316yD9D8BpsgfRivlhSZVeo RlHoNWCV5izdbFZUfkskZchjISpV5DvfT41Ua9iPiaX4oP9FSCNuCcP9U G/rG6liAu6WCr9z8s5KmH6o4qhD3byye4I5+2YAf/h2T4UQHEW0QiHZZE sunNPIYiW8/C/zM3vDPeWbckwXYKan1dfiIkPznnq16Ei4maERaIFppEI jgIKUWYw33V97rfYfjGNkeKjJDxj8g4LEleGOQiDo0SCz+8RcxopRwZ/w A==; X-IronPort-AV: E=McAfee;i="6600,9927,10812"; a="461023452" X-IronPort-AV: E=Sophos;i="6.02,195,1688454000"; d="scan'208";a="461023452" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Aug 2023 01:10:45 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10812"; a="766879833" X-IronPort-AV: E=Sophos;i="6.02,195,1688454000"; d="scan'208";a="766879833" Received: from unknown (HELO localhost.localdomain) ([10.239.252.96]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Aug 2023 01:10:44 -0700 From: Jiale Song To: dts@dpdk.org Cc: Jiale Song Subject: [dts] [PATCH V2 2/3] test_plans/mev_cpfl_hairpin_queue: mev cpfl support hairpin queue Date: Fri, 25 Aug 2023 16:19:22 +0000 Message-Id: <20230825161923.2832805-3-songx.jiale@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230825161923.2832805-1-songx.jiale@intel.com> References: <20230825161923.2832805-1-songx.jiale@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: Jiale Song --- .../mev_cpfl_hairpin_queue_test_plan.rst | 100 ++++++++++++++++++ 1 file changed, 100 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..0f2ee4bf --- /dev/null +++ b/test_plans/mev_cpfl_hairpin_queue_test_plan.rst @@ -0,0 +1,100 @@ +============================== +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):: + + [root@mev-acc-rl ~]# cat /etc/issue + MEV ACC mev-hw-b0-ci-ts.release.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:: + + tcpdump -i ens21f0 -env -Q in + 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) + +5. Send mismatch packets form tester and check tester can't receive the transmit packet:: + + sendp(Ether(dst="de:ad:be:ef:20:25")/IP(src="10.2.29.100", dst="10.2.29.2")/UDP(),iface="ens21f0",count=1) + sendp(Ether(dst="de:ad:be:ef:20:25")/IP(src="10.2.29.101", dst="10.2.29.2")/UDP(),iface="ens21f0",count=1) + sendp(Ether(dst="de:ad:be:ef:20:25")/IP(src="10.2.29.100", dst="10.2.29.4")/UDP(),iface="ens21f0",count=1) + sendp(Ether(dst="de:ad:be:ef:20:25")/IP(src="10.2.29.100", dst="10.2.29.2")/TCP(),iface="ens21f0",count=1) + sendp(Ether(dst="de:ad:be:ef:20:25")/IP(src="10.2.29.100", dst="10.2.29.2"),iface="ens21f0",count=1) + +6. Start testpmd forwarding and send mismatch packets, check testpmd can receive and transmit packets:: + + testpmd> start + testpmd> set verbose 1 + testpmd> show port stats all + +7. Send mismatch packets form tester and check tester can't receive the transmit packet:: + + sendp(Ether(dst="de:ad:be:ef:20:25")/IP(src="10.2.29.100", dst="10.2.29.2")/UDP(),iface="ens21f0",count=1) + sendp(Ether(dst="de:ad:be:ef:20:25")/IP(src="10.2.29.101", dst="10.2.29.2")/UDP(),iface="ens21f0",count=1) + sendp(Ether(dst="de:ad:be:ef:20:25")/IP(src="10.2.29.100", dst="10.2.29.4")/UDP(),iface="ens21f0",count=1) + sendp(Ether(dst="de:ad:be:ef:20:25")/IP(src="10.2.29.100", dst="10.2.29.2")/TCP(),iface="ens21f0",count=1) + sendp(Ether(dst="de:ad:be:ef:20:25")/IP(src="10.2.29.100", dst="10.2.29.2"),iface="ens21f0",count=1) + +Test case 1: single_hairpin_queue +--------------------------------- +Test subcase 1: single_hairpin_queue_single_data_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 subcase 2: single_hairpin_queue_multi_data_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 2: multi_hairpin_queue +--------------------------------- +Test subcase 1: multi_hairpin_queue_single_data_queue +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +./dpdk-testpmd -l 1-2 -n 4 -a ca:00.6,vport=0 -- -i --rxq=1 --txq=1 --hairpinq=16 --hairpin-mode=0 + +Test subcase 2: multi_hairpin_queue_multi_data_queues +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +./dpdk-testpmd -l 1-2 -n 4 -a ca:00.6,vport=0 -- -i --rxq=16 --txq=16 --hairpinq=16 --hairpin-mode=0