From patchwork Mon Sep 6 17:36:09 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yan Xia X-Patchwork-Id: 98077 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 4C005A0C4D; Mon, 6 Sep 2021 11:04:35 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 44657410E6; Mon, 6 Sep 2021 11:04:35 +0200 (CEST) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mails.dpdk.org (Postfix) with ESMTP id 43AE140C35 for ; Mon, 6 Sep 2021 11:04:34 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10098"; a="305483863" X-IronPort-AV: E=Sophos;i="5.85,271,1624345200"; d="scan'208";a="305483863" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Sep 2021 02:04:33 -0700 X-IronPort-AV: E=Sophos;i="5.85,271,1624345200"; d="scan'208";a="468776621" Received: from unknown (HELO localhost.localdomain) ([10.240.183.102]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Sep 2021 02:04:31 -0700 From: Yan Xia To: dts@dpdk.org Cc: Yan Xia Date: Mon, 6 Sep 2021 17:36:09 +0000 Message-Id: <20210906173609.24015-1-yanx.xia@intel.com> X-Mailer: git-send-email 2.17.1 Subject: [dts] [PATCH V1 2/3] test_plans/generic_flow_api: add and modify test plan of test cases 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 Sender: "dts" modify test cases about legcay command and move these to generic_flow_api_test_plan Signed-off-by: Yan Xia --- test_plans/generic_flow_api_test_plan.rst | 160 ++++++++++++++++++++-- 1 file changed, 150 insertions(+), 10 deletions(-) diff --git a/test_plans/generic_flow_api_test_plan.rst b/test_plans/generic_flow_api_test_plan.rst index d1fa33bd..519f0453 100644 --- a/test_plans/generic_flow_api_test_plan.rst +++ b/test_plans/generic_flow_api_test_plan.rst @@ -831,14 +831,6 @@ Test case: IXGBE L2-tunnel(supported by x552 and x550) testpmd> set verbose 1 testpmd> start - Enabling ability of parsing E-tag packet, set on pf:: - - testpmd> port config 0 l2-tunnel E-tag enable - - Enable E-tag packet forwarding, set on pf:: - - testpmd> E-tag set forwarding on port 0 - 2. create filter rules:: testpmd> flow create 0 ingress pattern e_tag grp_ecid_b is 0x1309 / end actions queue index 0 / end @@ -850,10 +842,8 @@ Test case: IXGBE L2-tunnel(supported by x552 and x550) pkt1 = Ether(dst="00:11:22:33:44:55")/Dot1BR(GRP=0x1, ECIDbase=0x309)/Raw('x' * 20) pkt2 = Ether(dst="00:11:22:33:44:55")/Dot1BR(GRP=0x1, ECIDbase=0x308)/Raw('x' * 20) pkt3 = Ether(dst="00:11:22:33:44:55")/Dot1BR(GRP=0x1, ECIDbase=0x307)/Raw('x' * 20) - pkt4 = Ether(dst="00:11:22:33:44:55")/Dot1BR(GRP=0x2, ECIDbase=0x309)/Raw('x' * 20) verify pkt1 to vf0 queue0, pkt2 to vf1 queue0, pkt3 to pf queue0, - pkt4 can't received by pf and vfs. 4. verify rules can be listed and destroyed:: @@ -2042,3 +2032,153 @@ Test case: create different rule after destroy pkt2 = Ether()/IP()/UDP(dport=32)/Raw('x' * 20) verify match pkt2 to queue 2, verify mismatch pkt1 to queue 0. + +Test Case: 10GB Multiple filters +====================================== + +1. config testpmd on DUT + + 1. set up testpmd with Fortville NICs:: + + ./testpmd -l 1,2,3,4,5,6,7,8 -n 4 -- -i --disable-rss --rxq=16 --txq=16 + + 2. verbose configuration:: + + testpmd> set verbose 1 + + 3. PMD fwd only receive the packets:: + + testpmd> set fwd rxonly + + 4. start packet receive:: + + testpmd> start + + 5. create rule,Enable ethertype filter, SYN filter and 5-tuple Filter on the port 0 at same + time. Assigning different filters to different queues on port 0:: + + testpmd> flow validate 0 ingress pattern eth / ipv4 / tcp flags spec 0x02 flags mask 0x02 / end actions queue index 1 / end + testpmd> flow validate 0 ingress pattern eth type is 0x0806 / end actions queue index 2 / end + testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 2.2.2.5 src is 2.2.2.4 proto is 17 / udp dst is 1 src is 1 / end actions queue index 3 / end + testpmd> flow create 0 ingress pattern eth / ipv4 / tcp flags spec 0x02 flags mask 0x02 / end actions queue index 1 / end + testpmd> flow create 0 ingress pattern eth type is 0x0806 / end actions queue index 2 / end + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 2.2.2.5 src is 2.2.2.4 proto is 17 / udp dst is 1 src is 1 / end actions queue index 3 / end + +2. Configure the traffic generator to send different packets. Such as,SYN packets, ARP packets, IP packets and +packets with(`dst_ip` = 2.2.2.5 `src_ip` = 2.2.2.4 `dst_port` = 1 `src_port` = 1 `protocol` = udp):: + + sendp([Ether(dst="90:e2:ba:36:99:34")/IP(src="192.168.0.1", dst="192.168.0.2")/TCP(dport=80,flags="S")/Raw("x" * 20)],iface="ens224f0",count=1,inter=0,verbose=False) + sendp([Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(pdst="192.168.1.1")/Raw("x" * 20)],iface="ens224f0",count=1,inter=0,verbose=False) + sendp([Ether(dst="90:e2:ba:36:99:34")/Dot1Q(prio=3)/IP(src="2.2.2.4",dst="2.2.2.5")/UDP(sport=1,dport=1)],iface="ens224f0",count=1,inter=0,verbose=False) + +3. Verify that all packets are received (RX-packets incremented)on the assigned +queue, remove 5-tuple filter:: + + testpmd> stop + testpmd> start + testpmd> flow destroy 0 rule 2 + +4. Send different packets such as,SYN packets, ARP packets, packets with +(`dst_ip` = 2.2.2.5 `src_ip` = 2.2.2.4 `dst_port` = 1 `src_port` = 1 +`protocol` = udp):: + + testpmd> stop + +5. Verify that different packets are received (RX-packets incremented)on the +assigned queue export 5-tuple filter, remove ethertype filter:: + + testpmd> start + testpmd> flow destroy 0 rule 1 + +Send different packets such as,SYN packets, ARP packets, packets with +(`dst_ip` = 2.2.2.5 `src_ip` = 2.2.2.4 `dst_port` = 1 `src_port` = 1 +`protocol` = udp):: + + testpmd>stop + +Verify that only SYN packets are received (RX-packets incremented)on the +assigned queue set off SYN filter,remove syn filter:: + + testpmd>start + testpmd>flow destroy 0 rule 0 + +Configure the traffic generator to send SYN packets:: + + testpmd>stop + +Verify that the packets are not received (RX-packets do not increased)on the +queue 1. + +Test Case: 128 queues +======================== + +This case is designed for NIC(niantic). Since NIC(niantic) has 128 transmit +queues, it should be supports 128 kinds of filter if Hardware have enough +cores. +DPDK enable 64 queues in ixgbe driver by default. Enlarge queue number to 128 +for 128 queues test:: + + sed -i -e 's/#define IXGBE_NONE_MODE_TX_NB_QUEUES 64$/#define IXGBE_NONE_MODE_TX_NB_QUEUES 128/' drivers/net/ixgbe/ixgbe_ethdev.h + +Launch the app ``testpmd`` with the following arguments:: + + ./testpmd -l 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53 -n 4 -- -i --disable-rss --rxq=128 --txq=128 --portmask=0x3 --nb-cores=4 --total-num-mbufs=263168 + + testpmd>set stat_qmap rx 0 0 0 + testpmd>set stat_qmap rx 1 0 0 + testpmd>vlan set strip off 0 + testpmd>vlan set strip off 1 + testpmd>vlan set filter off 0 + testpmd>vlan set filter off 1 + +Create the 5-tuple Filters with different queues (64,127) on port 0 for +niantic:: + + testpmd> set stat_qmap rx 0 64 1 + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 2.2.2.5 src is 2.2.2.4 / tcp dst is 1 src is 1 / end actions queue index 64 / end + testpmd> set stat_qmap rx 0 127 2 + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 2.2.2.5 src is 2.2.2.4 / tcp dst is 2 src is 1 / end actions queue index 127 / end + +Send packets(`dst_ip` = 2.2.2.5 `src_ip` = 2.2.2.4 `dst_port` = 1 `src_port` = +1 `protocol` = tcp) and (`dst_ip` = 2.2.2.5 `src_ip` = 2.2.2.4 `dst_port` = 2 +`src_port` = 1 `protocol` = tcp ). Then reading the stats for port 0 after +sending packets. packets are received on the queue 64 and queue 127 When +setting 5-tuple Filter with queue(128), it will display failure because the +number of queues no more than 128. + +Test Case: jumbo framesize filter +=================================== + +This case is designed for NIC (niantic,I350, 82576 and 82580). Since +``Testpmd`` could transmits packets with jumbo frame size , it also could +transmit above packets on assigned queue. Launch the app ``testpmd`` with the +following arguments:: + + testpmd -l 1,2,3,4,5,6,7,8 -n 4 -- -i --disable-rss --rxq=4 --txq=4 --portmask=0x3 --nb-cores=4 --nb-ports=1 --mbcache=200 --mbuf-size=2048 --max-pkt-len=9600 + testpmd> set fwd rxonly + testpmd> set verbose 1 + testpmd> start + +Enable the syn filters with large size:: + + testpmd> flow validate 0 ingress pattern eth / ipv4 / tcp flags spec 0x02 flags mask 0x02 / end actions queue index 2 / end + testpmd> flow create 0 ingress pattern eth / ipv4 / tcp flags spec 0x02 flags mask 0x02 / end actions queue index 2 / end + +Configure the traffic generator to send syn packets:: + + sendp([Ether(dst="90:e2:ba:36:99:34")/IP(src="2.2.2.5",dst="2.2.2.4")/TCP(dport=80,flags="S")/Raw(load="P"*8962)],iface="ens224f0",count=1,inter=0,verbose=False) + testpmd> stop + +Then Verify that the packet are received on the queue 2. Configure the traffic generator to send arp packets:: + + testpmd> start + sendp([Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(pdst="192.168.1.1")],iface="ens224f0",count=1,inter=0,verbose=False) + +Then Verify that the packet are not received on the queue 2. Remove the filter:: + + testpmd> flow destroy 0 rule 0 + +Configure the traffic generator to send syn packets. Then Verify that +the packet are not received on the queue 2:: + + testpmd> stop