From patchwork Wed Sep 28 03:18:55 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ke Xu X-Patchwork-Id: 116998 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 8F879A00C3; Wed, 28 Sep 2022 05:28:29 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8619B427F9; Wed, 28 Sep 2022 05:28:29 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mails.dpdk.org (Postfix) with ESMTP id 9631740E25 for ; Wed, 28 Sep 2022 05:28:26 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1664335706; x=1695871706; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=IzJfqaaXUhQJbwy+jtSWqjjPQhn5Gi/cvI4d5fER+KY=; b=hw2kw/Jvu3kgiKJyTqvPV9Q7GPtLRSQ3L7JdkLn7yw5dBN0QYGMMalga nngltCWpRnWMMQBqhamM1+vzQoQzBXRE84bnb4v7J/+IqI0AzBfQRUAzj hTp7foAlG24oidz9V8WcTV/qWN4elEQEgK9TIXxd8BeZWXUZgVDEMZ5wc aRqIWoqMG6kWySpj3Jjn94r47RQ2+F2PxSDOu1kOYtxjCXk9MGCHhX2ZQ FKrh5ArS3uwakUFIM+KH7AavIox8MoS39fRxPNfLc5mqF2auMdQlByFSm Hh+xJjTfG7KFuGngycZbEk0G9mz/xZfCLPkOeuTP1QIG9M6G+/BI4b/56 A==; X-IronPort-AV: E=McAfee;i="6500,9779,10483"; a="302976057" X-IronPort-AV: E=Sophos;i="5.93,350,1654585200"; d="scan'208";a="302976057" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Sep 2022 20:28:11 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10483"; a="710803385" X-IronPort-AV: E=Sophos;i="5.93,350,1654585200"; d="scan'208";a="710803385" Received: from unknown (HELO DPDK-XUKE-LAB.sh.intel.com) ([10.67.116.226]) by FMSMGA003.fm.intel.com with ESMTP; 27 Sep 2022 20:28:08 -0700 From: Ke Xu To: dts@dpdk.org Cc: lijuan.tu@intel.com, jin.ling@intel.com, zhiminx.huang@intel.com, weiyuanx.li@intel.com, qi.fu@intel.com, Ke Xu Subject: [DTS][PATCH V1 19/21] test_plans/ice_dcf_switch_filter: update test plan to support represented port action from deprecated vf action Date: Wed, 28 Sep 2022 03:18:55 +0000 Message-Id: <20220928031836.770004-20-ke1.xu@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220928031836.770004-1-ke1.xu@intel.com> References: <20220928031836.770004-1-ke1.xu@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 In negative cases, subcase 8: invalid vf id is removed for introducing of new API is not using vf id. New API may introduce invalid port id and that will be covered by a new subcase added in the patch covering new API. Signed-off-by: Ke Xu --- .../ice_dcf_switch_filter_test_plan.rst | 677 +++++++++--------- 1 file changed, 329 insertions(+), 348 deletions(-) diff --git a/test_plans/ice_dcf_switch_filter_test_plan.rst b/test_plans/ice_dcf_switch_filter_test_plan.rst index 0d38c218..015f0006 100644 --- a/test_plans/ice_dcf_switch_filter_test_plan.rst +++ b/test_plans/ice_dcf_switch_filter_test_plan.rst @@ -202,10 +202,12 @@ Prerequisites modprobe vfio-pci ./usertools/dpdk-devbind.py -b vfio-pci 0000:18:01.0 0000:18:01.1 0000:18:01.2 0000:18:01.3 -9. Launch dpdk on VF0 and VF1, and VF0 request DCF mode:: +9. Launch dpdk on VF0 and VF1, and VF0 request DCF mode, representing VF1 and VF2:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xf -n 4 -a 0000:18:01.0,cap=dcf -a 0000:18:01.1 -- -i - testpmd> set portlist 1 + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xf -n 4 \ + -a 0000:18:01.0,cap=dcf,representor=[1,2] -a 0000:18:01.1 -a 0000:18:01.2 \ + -- -i + testpmd> set portlist 3,4 testpmd> set fwd rxonly testpmd> set verbose 1 testpmd> start @@ -230,7 +232,7 @@ Test case: MAC_PAY 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth src is 00:00:00:00:00:01 dst is 00:11:22:33:44:55 type is 0x0800 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth src is 00:00:00:00:00:01 dst is 00:11:22:33:44:55 type is 0x0800 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -244,7 +246,7 @@ Test case: MAC_PAY 2. create a rule:: - testpmd> flow create 0 ingress pattern eth src is 00:00:00:00:00:01 dst is 00:11:22:33:44:55 type is 0x0800 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth src is 00:00:00:00:00:01 dst is 00:11:22:33:44:55 type is 0x0800 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -253,14 +255,14 @@ Test case: MAC_PAY sendp([Ether(src="00:00:00:00:00:01",dst="00:11:22:33:44:55")/IP()/Raw("x" *80)],iface="enp27s0f0",count=1) - check port 1 receive the packet. + check port 3 receive the packet. send mismatched packets:: sendp([Ether(src="00:00:00:00:00:02",dst="00:11:22:33:44:55")/IP()/Raw("x" *80)],iface="enp27s0f0",count=1) sendp([Ether(src="00:00:00:00:00:01",dst="00:11:22:33:44:54")/IP()/Raw("x" *80)],iface="enp27s0f0",count=1) sendp([Ether(src="00:00:00:00:00:01",dst="00:11:22:33:44:55")/IPv6()/Raw("x" *80)],iface="enp27s0f0",count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -268,14 +270,14 @@ Test case: MAC_PAY testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: MAC_IPV4_FRAG ======================== 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 2 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 2 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -289,7 +291,7 @@ Test case: MAC_IPV4_FRAG 2. create a rule:: - testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 2 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 2 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -298,7 +300,7 @@ Test case: MAC_IPV4_FRAG sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=2,frag=5)/("X"*480)], iface="enp27s0f0", count=1) - check port 1 receive the packet. + check port 3 receive the packet. send mismatched packets:: sendp([Ether(dst="68:05:ca:8d:ed:a3")/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=2,frag=5)/("X"*480)], iface="enp27s0f0", count=1) @@ -307,7 +309,7 @@ Test case: MAC_IPV4_FRAG sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1",dst="192.168.0.2",tos=5,ttl=2,frag=5)/("X"*480)], iface="enp27s0f0", count=1) sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=3,frag=5)/("X"*480)], iface="enp27s0f0", count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -315,14 +317,14 @@ Test case: MAC_IPV4_FRAG testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: MAC_IPV4_PAY ======================= 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 proto is 6 tos is 4 ttl is 2 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 proto is 6 tos is 4 ttl is 2 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -336,7 +338,7 @@ Test case: MAC_IPV4_PAY 2. create a rule:: - testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 proto is 6 tos is 4 ttl is 2 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 proto is 6 tos is 4 ttl is 2 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -345,7 +347,7 @@ Test case: MAC_IPV4_PAY sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=2)/TCP()/("X"*480)], iface="enp27s0f0", count=1) - check port 1 receive the packet. + check port 3 receive the packet. send mismatched packets:: sendp([Ether(dst="68:05:ca:8d:ed:a3")/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=2)/TCP()/("X"*480)], iface="enp27s0f0", count=1) @@ -355,7 +357,7 @@ Test case: MAC_IPV4_PAY sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=3)/TCP()/("X"*480)], iface="enp27s0f0", count=1) sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=2)/UDP()/("X"*480)], iface="enp27s0f0", count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -363,14 +365,14 @@ Test case: MAC_IPV4_PAY testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: MAC_IPV4_UDP_PAY =========================== 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -384,7 +386,7 @@ Test case: MAC_IPV4_UDP_PAY 2. create a rule:: - testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -393,7 +395,7 @@ Test case: MAC_IPV4_UDP_PAY sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=3)/UDP(sport=25,dport=23)/("X"*480)], iface="enp27s0f0", count=1) - check port 1 receive the packet. + check port 3 receive the packet. send mismatched packets:: sendp([Ether(dst="68:05:ca:8d:ed:a3")/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=3)/UDP(sport=25,dport=23)/("X"*480)], iface="enp27s0f0", count=1) @@ -404,7 +406,7 @@ Test case: MAC_IPV4_UDP_PAY sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=3)/UDP(sport=30,dport=23)/("X"*480)], iface="enp27s0f0", count=1) sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=3)/UDP(sport=25,dport=19)/("X"*480)], iface="enp27s0f0", count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -412,14 +414,14 @@ Test case: MAC_IPV4_UDP_PAY testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: MAC_IPV4_TCP_PAY =========================== 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / tcp src is 25 dst is 23 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / tcp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -433,7 +435,7 @@ Test case: MAC_IPV4_TCP_PAY 2. create a rule:: - testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / tcp src is 25 dst is 23 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / tcp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -442,7 +444,7 @@ Test case: MAC_IPV4_TCP_PAY sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=3)/TCP(sport=25,dport=23)/("X"*480)], iface="enp27s0f0", count=1) - check port 1 receive the packet. + check port 3 receive the packet. send mismatched packets:: sendp([Ether(dst="68:05:ca:8d:ed:a3")/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=3)/TCP(sport=25,dport=23)/("X"*480)], iface="enp27s0f0", count=1) @@ -453,7 +455,7 @@ Test case: MAC_IPV4_TCP_PAY sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=3)/TCP(sport=30,dport=23)/("X"*480)], iface="enp27s0f0", count=1) sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=3)/TCP(sport=25,dport=19)/("X"*480)], iface="enp27s0f0", count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -461,14 +463,14 @@ Test case: MAC_IPV4_TCP_PAY testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: MAC_IPV4_IGMP ======================== 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth / ipv4 proto is 0x02 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth / ipv4 proto is 0x02 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -482,7 +484,7 @@ Test case: MAC_IPV4_IGMP 2. create a rule:: - testpmd> flow create 0 ingress pattern eth / ipv4 proto is 0x02 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv4 proto is 0x02 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -491,13 +493,13 @@ Test case: MAC_IPV4_IGMP sendp([Ether(dst="00:11:22:33:44:55")/IP()/IGMP()/Raw("X"*480)], iface="enp27s0f0", count=1) - check port 1 receive the packet. + check port 3 receive the packet. send mismatched packets:: sendp([Ether(dst="00:11:22:33:44:55")/IP()/TCP()/Raw("X"*480)], iface="enp27s0f0", count=1) sendp([Ether(dst="00:11:22:33:44:55")/IP()/UDP()/Raw("X"*480)], iface="enp27s0f0", count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -505,7 +507,7 @@ Test case: MAC_IPV4_IGMP testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: MAC_IPV6_srcip_dstip =============================== @@ -515,7 +517,7 @@ Therefore, if a rule carries src ipv6, dst ipv6, it can not take any other field 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -529,7 +531,7 @@ Therefore, if a rule carries src ipv6, dst ipv6, it can not take any other field 2. create a rule:: - testpmd> flow create 0 ingress pattern eth / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -539,7 +541,7 @@ Therefore, if a rule carries src ipv6, dst ipv6, it can not take any other field sendp([Ether(dst="00:11:22:33:44:55")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/("X"*480)], iface="enp27s0f0", count=1) sendp([Ether(dst="00:11:22:33:44:55")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/IPv6ExtHdrFragment()/("X"*480)], iface="enp27s0f0", count=1) - check port 1 receive the packets. + check port 3 receive the packets. send mismatched packets:: sendp([Ether(dst="00:11:22:33:44:55")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1537", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/("X"*480)], iface="enp27s0f0", count=1) @@ -547,7 +549,7 @@ Therefore, if a rule carries src ipv6, dst ipv6, it can not take any other field sendp([Ether(dst="00:11:22:33:44:55")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1537", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/IPv6ExtHdrFragment()/("X"*480)], iface="enp27s0f0", count=1) sendp([Ether(dst="00:11:22:33:44:55")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2023")/IPv6ExtHdrFragment()/("X"*480)], iface="enp27s0f0", count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -555,14 +557,14 @@ Therefore, if a rule carries src ipv6, dst ipv6, it can not take any other field testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: MAC_IPV6_dstip_tc ============================ 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -576,7 +578,7 @@ Test case: MAC_IPV6_dstip_tc 2. create a rule:: - testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -586,7 +588,7 @@ Test case: MAC_IPV6_dstip_tc sendp([Ether(dst="68:05:ca:8d:ed:a8")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1518", dst="CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3)/("X"*480)], iface="enp27s0f0", count=1) sendp([Ether(dst="68:05:ca:8d:ed:a8")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1518", dst="CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3)/IPv6ExtHdrFragment()/("X"*480)], iface="enp27s0f0", count=1) - check port 1 receive the packet. + check port 3 receive the packet. send mismatched packets:: sendp([Ether(dst="68:05:ca:8d:ed:a3")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1518", dst="CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3)/("X"*480)], iface="enp27s0f0", count=1) @@ -596,7 +598,7 @@ Test case: MAC_IPV6_dstip_tc sendp([Ether(dst="68:05:ca:8d:ed:a8")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1518", dst="CDCD:910A:2222:5498:8475:1111:3900:2023",tc=3)/IPv6ExtHdrFragment()/("X"*480)], iface="enp27s0f0", count=1) sendp([Ether(dst="68:05:ca:8d:ed:a8")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1518", dst="CDCD:910A:2222:5498:8475:1111:3900:2020",tc=4)/IPv6ExtHdrFragment()/("X"*480)], iface="enp27s0f0", count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -604,14 +606,14 @@ Test case: MAC_IPV6_dstip_tc testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: MAC_IPV6_UDP_PAY =========================== 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / udp src is 25 dst is 23 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -625,7 +627,7 @@ Test case: MAC_IPV6_UDP_PAY 2. create a rule:: - testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / udp src is 25 dst is 23 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -634,7 +636,7 @@ Test case: MAC_IPV6_UDP_PAY sendp([Ether(dst="68:05:ca:8d:ed:a8")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1518", dst="CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3)/UDP(sport=25,dport=23)/("X"*480)], iface="enp27s0f0",count=1) - check port 1 receive the packet. + check port 3 receive the packet. send mismatched packets:: sendp([Ether(dst="68:05:ca:8d:ed:a3")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1518", dst="CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3)/UDP(sport=25,dport=23)/("X"*480)], iface="enp27s0f0",count=1) @@ -643,7 +645,7 @@ Test case: MAC_IPV6_UDP_PAY sendp([Ether(dst="68:05:ca:8d:ed:a8")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1518", dst="CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3)/UDP(sport=30,dport=23)/("X"*480)], iface="enp27s0f0",count=1) sendp([Ether(dst="68:05:ca:8d:ed:a8")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1518", dst="CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3)/UDP(sport=25,dport=19)/("X"*480)], iface="enp27s0f0",count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -651,14 +653,14 @@ Test case: MAC_IPV6_UDP_PAY testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: MAC_IPV6_TCP ======================= 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / tcp src is 25 dst is 23 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / tcp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -672,7 +674,7 @@ Test case: MAC_IPV6_TCP 2. create a rule:: - testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / tcp src is 25 dst is 23 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / tcp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -681,7 +683,7 @@ Test case: MAC_IPV6_TCP sendp([Ether(dst="68:05:ca:8d:ed:a8")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1518", dst="CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3)/TCP(sport=25,dport=23)/("X"*480)], iface="enp27s0f0", count=1) - check port 1 receive the packet. + check port 3 receive the packet. send mismatched packets:: sendp([Ether(dst="68:05:ca:8d:ed:a3")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1518", dst="CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3)/TCP(sport=25,dport=23)/("X"*480)], iface="enp27s0f0", count=1) @@ -690,7 +692,7 @@ Test case: MAC_IPV6_TCP sendp([Ether(dst="68:05:ca:8d:ed:a8")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1518", dst="CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3)/TCP(sport=30,dport=23)/("X"*480)], iface="enp27s0f0", count=1) sendp([Ether(dst="68:05:ca:8d:ed:a8")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1518", dst="CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3)/TCP(sport=25,dport=19)/("X"*480)], iface="enp27s0f0", count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -698,14 +700,14 @@ Test case: MAC_IPV6_TCP testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: MAC_IPV4_VXLAN_IPV4_FRAG (not support in 20.05) ========================================================== 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -719,7 +721,7 @@ Test case: MAC_IPV4_VXLAN_IPV4_FRAG (not support in 20.05) 2. create a rule:: - testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -729,7 +731,7 @@ Test case: MAC_IPV4_VXLAN_IPV4_FRAG (not support in 20.05) sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3",frag=5)/TCP()/Raw("x"*80)],iface="enp27s0f0",count=1) sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3",frag=5)/Raw("x"*80)],iface="enp27s0f0",count=1) - check port 1 receive the packets. + check port 3 receive the packets. send mismatched packets:: sendp([Ether()/IP(dst="192.168.0.2")/UDP()/VXLAN(vni=2)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3",frag=5)/Raw("x"*80)],iface="enp27s0f0",count=1) @@ -737,7 +739,7 @@ Test case: MAC_IPV4_VXLAN_IPV4_FRAG (not support in 20.05) sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether()/IP(src="192.168.0.4", dst="192.168.0.3",frag=5)/Raw("x"*80)],iface="enp27s0f0",count=1) sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether()/IP(src="192.168.0.2", dst="192.168.0.5",frag=5)/Raw("x"*80)],iface="enp27s0f0",count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -745,14 +747,14 @@ Test case: MAC_IPV4_VXLAN_IPV4_FRAG (not support in 20.05) testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: MAC_IPV4_VXLAN_IPV4_PAY (not support in 20.05) ========================================================= 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -766,7 +768,7 @@ Test case: MAC_IPV4_VXLAN_IPV4_PAY (not support in 20.05) 2. create a rule:: - testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -776,7 +778,7 @@ Test case: MAC_IPV4_VXLAN_IPV4_PAY (not support in 20.05) sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3")/TCP()/Raw("x"*80)],iface="enp27s0f0",count=1) sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3")/Raw("x"*80)],iface="enp27s0f0",count=1) - check port 1 receive the packets. + check port 3 receive the packets. send mismatched packets:: sendp([Ether()/IP(dst="192.168.0.2")/UDP()/VXLAN(vni=2)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3")/TCP()/Raw("x"*80)],iface="enp27s0f0",count=1) @@ -784,7 +786,7 @@ Test case: MAC_IPV4_VXLAN_IPV4_PAY (not support in 20.05) sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether()/IP(src="192.168.0.4", dst="192.168.0.3")/TCP()/Raw("x"*80)],iface="enp27s0f0",count=1) sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether()/IP(src="192.168.0.2", dst="192.168.0.5")/TCP()/Raw("x"*80)],iface="enp27s0f0",count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -792,14 +794,14 @@ Test case: MAC_IPV4_VXLAN_IPV4_PAY (not support in 20.05) testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: MAC_IPV4_VXLAN_IPV4_UDP_PAY (not support in 20.05) ============================================================= 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 dst is 23 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 dst is 23 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -813,7 +815,7 @@ Test case: MAC_IPV4_VXLAN_IPV4_UDP_PAY (not support in 20.05) 2. create a rule:: - testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 dst is 23 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 dst is 23 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -822,13 +824,13 @@ Test case: MAC_IPV4_VXLAN_IPV4_UDP_PAY (not support in 20.05) sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3")/UDP(sport=50,dport=23) /Raw("x"*80)],iface="enp27s0f0",count=1) - check port 1 receive the packets. + check port 3 receive the packets. send mismatched packets:: sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3")/UDP(sport=20,dport=23) /Raw("x"*80)],iface="enp27s0f0",count=1) sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3")/UDP(sport=50,dport=19) /Raw("x"*80)],iface="enp27s0f0",count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -836,14 +838,14 @@ Test case: MAC_IPV4_VXLAN_IPV4_UDP_PAY (not support in 20.05) testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: MAC_IPV4_VXLAN_IPV4_TCP (not support in 20.05) ========================================================= 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / tcp src is 50 dst is 23 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / tcp src is 50 dst is 23 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -857,7 +859,7 @@ Test case: MAC_IPV4_VXLAN_IPV4_TCP (not support in 20.05) 2. create a rule:: - testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / tcp src is 50 dst is 23 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / tcp src is 50 dst is 23 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -866,13 +868,13 @@ Test case: MAC_IPV4_VXLAN_IPV4_TCP (not support in 20.05) sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3")/TCP(sport=50,dport=23)/Raw("x"*80)],iface="enp27s0f0",count=1) - check port 1 receive the packets. + check port 3 receive the packets. send mismatched packets:: sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3")/TCP(sport=29,dport=23)/Raw("x"*80)],iface="enp27s0f0",count=1) sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3")/TCP(sport=50,dport=100)/Raw("x"*80)],iface="enp27s0f0",count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -880,14 +882,14 @@ Test case: MAC_IPV4_VXLAN_IPV4_TCP (not support in 20.05) testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: MAC_IPV4_VXLAN_MAC_IPV4_FRAG (not support in 20.05) ============================================================== 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -901,7 +903,7 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_FRAG (not support in 20.05) 2. create a rule:: - testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -911,7 +913,7 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_FRAG (not support in 20.05) sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.2", dst="192.168.0.3" ,frag=5)/TCP()/Raw("x"*80)],iface="enp27s0f0",count=1) sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.2", dst="192.168.0.3" ,frag=5)/Raw("x"*80)],iface="enp27s0f0",count=1) - check port 1 receive the packets. + check port 3 receive the packets. send mismatched packets:: sendp([Ether()/IP(dst="192.168.0.2")/UDP()/VXLAN(vni=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.2", dst="192.168.0.3" ,frag=5)/TCP()/Raw("x"*80)],iface="enp27s0f0",count=1) @@ -920,7 +922,7 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_FRAG (not support in 20.05) sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.4", dst="192.168.0.3" ,frag=5)/TCP()/Raw("x"*80)],iface="enp27s0f0",count=1) sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.2", dst="192.168.0.5" ,frag=5)/TCP()/Raw("x"*80)],iface="enp27s0f0",count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -928,14 +930,14 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_FRAG (not support in 20.05) testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: MAC_IPV4_VXLAN_MAC_IPV4_PAY (not support in 20.05) ============================================================= 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -949,7 +951,7 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_PAY (not support in 20.05) 2. create a rule:: - testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -959,7 +961,7 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_PAY (not support in 20.05) sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.2", dst="192.168.0.3") /TCP()/Raw("x" * 80)],iface="enp27s0f0",count=1) sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.2", dst="192.168.0.3")/Raw("x" * 80)],iface="enp27s0f0",count=1) - check port 1 receive the packets. + check port 3 receive the packets. send mismatched packets:: sendp([Ether()/IP(dst="192.168.0.2")/UDP()/VXLAN(vni=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.2", dst="192.168.0.3") /TCP()/Raw("x" * 80)],iface="enp27s0f0",count=1) @@ -968,7 +970,7 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_PAY (not support in 20.05) sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.4", dst="192.168.0.3") /TCP()/Raw("x" * 80)],iface="enp27s0f0",count=1) sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.2", dst="192.168.0.5") /TCP()/Raw("x" * 80)],iface="enp27s0f0",count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -976,14 +978,14 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_PAY (not support in 20.05) testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: MAC_IPV4_VXLAN_MAC_IPV4_UDP_PAY (not support in 20.05) ================================================================= 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 dst is 23 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 dst is 23 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -997,7 +999,7 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_UDP_PAY (not support in 20.05) 2. create a rule:: - testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 dst is 23 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 dst is 23 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -1006,13 +1008,13 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_UDP_PAY (not support in 20.05) sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.2", dst="192.168.0.3")/UDP(sport=50,dport=23)/Raw("x" * 80)],iface="enp27s0f0",count=1) - check port 1 receive the packets. + check port 3 receive the packets. send mismatched packets:: sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.2", dst="192.168.0.3")/UDP(sport=20,dport=23)/Raw("x" * 80)],iface="enp27s0f0",count=1) sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.2", dst="192.168.0.3")/UDP(sport=50,dport=29)/Raw("x" * 80)],iface="enp27s0f0",count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -1020,14 +1022,14 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_UDP_PAY (not support in 20.05) testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: MAC_IPV4_VXLAN_MAC_IPV4_TCP (not support in 20.05) ============================================================= 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / tcp src is 25 dst is 23 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / tcp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -1041,7 +1043,7 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_TCP (not support in 20.05) 2. create a rule:: - testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / tcp src is 25 dst is 23 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / tcp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -1050,13 +1052,13 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_TCP (not support in 20.05) sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.2", dst="192.168.0.3")/TCP(sport=25,dport=23)/Raw("x" * 80)],iface="enp27s0f0",count=1) - check port 1 receive the packets. + check port 3 receive the packets. send mismatched packets:: sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.2", dst="192.168.0.3")/TCP(sport=20,dport=23)/Raw("x" * 80)],iface="enp27s0f0",count=1) sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.2", dst="192.168.0.3")/TCP(sport=25,dport=19)/Raw("x" * 80)],iface="enp27s0f0",count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -1064,14 +1066,14 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_TCP (not support in 20.05) testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: MAC_IPV4_NVGRE_IPV4_PAY =================================== 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -1085,7 +1087,7 @@ Test case: MAC_IPV4_NVGRE_IPV4_PAY 2. create a rule:: - testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -1095,7 +1097,7 @@ Test case: MAC_IPV4_NVGRE_IPV4_PAY sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=2)/Ether()/IP(src="192.168.1.2", dst="192.168.1.3")/Raw("x"*80)],iface="enp27s0f0",count=1) sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=2)/Ether()/IP(src="192.168.1.2", dst="192.168.1.3" ,frag=5)/Raw("x"*80)],iface="enp27s0f0",count=1) - check port 1 receive the packets. + check port 3 receive the packets. send mismatched packets:: sendp([Ether()/IP(dst="192.168.0.2")/NVGRE(TNI=2)/Ether()/IP(src="192.168.1.2", dst="192.168.1.3")/Raw("x"*80)],iface="enp27s0f0",count=1) @@ -1107,7 +1109,7 @@ Test case: MAC_IPV4_NVGRE_IPV4_PAY sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=2)/Ether()/IP(src="192.168.1.4", dst="192.168.1.3" ,frag=5)/Raw("x"*80)],iface="enp27s0f0",count=1) sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=2)/Ether()/IP(src="192.168.1.2", dst="192.168.1.5" ,frag=5)/Raw("x"*80)],iface="enp27s0f0",count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -1115,14 +1117,14 @@ Test case: MAC_IPV4_NVGRE_IPV4_PAY testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: MAC_IPV4_NVGRE_IPV4_UDP_PAY ====================================== 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 0x8 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 dst is 23 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 0x8 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 dst is 23 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -1136,7 +1138,7 @@ Test case: MAC_IPV4_NVGRE_IPV4_UDP_PAY 2. create a rule:: - testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 0x8 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 dst is 23 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 0x8 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 dst is 23 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -1145,7 +1147,7 @@ Test case: MAC_IPV4_NVGRE_IPV4_UDP_PAY sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=0x8)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3")/UDP(sport=50,dport=23)/Raw("x"*80)], iface="enp27s0f0", count=1) - check port 1 receive the packets. + check port 3 receive the packets. send mismatched packets:: sendp([Ether()/IP(dst="192.168.0.2")/NVGRE(TNI=0x8)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3")/UDP(sport=50,dport=23)/Raw("x"*80)], iface="enp27s0f0", count=1) @@ -1155,7 +1157,7 @@ Test case: MAC_IPV4_NVGRE_IPV4_UDP_PAY sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=0x8)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3")/UDP(sport=20,dport=23)/Raw("x"*80)], iface="enp27s0f0", count=1) sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=0x8)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3")/UDP(sport=50,dport=19)/Raw("x"*80)], iface="enp27s0f0", count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -1163,14 +1165,14 @@ Test case: MAC_IPV4_NVGRE_IPV4_UDP_PAY testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: MAC_IPV4_NVGRE_IPV4_TCP ================================== 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / tcp src is 25 dst is 23 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / tcp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -1184,7 +1186,7 @@ Test case: MAC_IPV4_NVGRE_IPV4_TCP 2. create a rule:: - testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / tcp src is 25 dst is 23 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / tcp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -1193,7 +1195,7 @@ Test case: MAC_IPV4_NVGRE_IPV4_TCP sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=2)/Ether()/IP(src="192.168.1.2", dst="192.168.1.3")/TCP(sport=25,dport=23)/Raw("x"*80)],iface="enp27s0f0",count=1) - check port 1 receive the packets. + check port 3 receive the packets. send mismatched packets:: sendp([Ether()/IP(dst="192.168.0.2")/NVGRE(TNI=2)/Ether()/IP(src="192.168.1.2", dst="192.168.1.3")/TCP(sport=25,dport=23)/Raw("x"*80)],iface="enp27s0f0",count=1) @@ -1203,7 +1205,7 @@ Test case: MAC_IPV4_NVGRE_IPV4_TCP sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=2)/Ether()/IP(src="192.168.1.2", dst="192.168.1.3")/TCP(sport=20,dport=23)/Raw("x"*80)],iface="enp27s0f0",count=1) sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=2)/Ether()/IP(src="192.168.1.2", dst="192.168.1.3")/TCP(sport=25,dport=39)/Raw("x"*80)],iface="enp27s0f0",count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -1211,14 +1213,14 @@ Test case: MAC_IPV4_NVGRE_IPV4_TCP testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: MAC_IPV4_NVGRE_MAC_IPV4_PAY ====================================== 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -1232,7 +1234,7 @@ Test case: MAC_IPV4_NVGRE_MAC_IPV4_PAY 2. create a rule:: - testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -1242,7 +1244,7 @@ Test case: MAC_IPV4_NVGRE_MAC_IPV4_PAY sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.1.2", dst="192.168.1.3")/Raw("x"*80)],iface="enp27s0f0",count=1) sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.1.2", dst="192.168.1.3" ,frag=5)/Raw("x"*80)],iface="enp27s0f0",count=1) - check port 1 receive the packets. + check port 3 receive the packets. send mismatched packets:: sendp([Ether()/IP(dst="192.168.0.2")/NVGRE(TNI=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.1.2", dst="192.168.1.3")/Raw("x"*80)],iface="enp27s0f0",count=1) @@ -1256,7 +1258,7 @@ Test case: MAC_IPV4_NVGRE_MAC_IPV4_PAY sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.1.4", dst="192.168.1.3" ,frag=5)/Raw("x"*80)],iface="enp27s0f0",count=1) sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.1.2", dst="192.168.1.5" ,frag=5)/Raw("x"*80)],iface="enp27s0f0",count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -1264,14 +1266,14 @@ Test case: MAC_IPV4_NVGRE_MAC_IPV4_PAY testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: MAC_IPV4_NVGRE_MAC_IPV4_UDP_PAY ========================================== 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 0x8 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / udp src is 25 dst is 23 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 0x8 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -1285,7 +1287,7 @@ Test case: MAC_IPV4_NVGRE_MAC_IPV4_UDP_PAY 2. create a rule:: - testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 0x8 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / udp src is 25 dst is 23 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 0x8 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -1294,7 +1296,7 @@ Test case: MAC_IPV4_NVGRE_MAC_IPV4_UDP_PAY sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=0x8)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.1.2", dst="192.168.1.3")/UDP(sport=25,dport=23)/Raw("x"*80)], iface="enp27s0f0", count=1) - check port 1 receive the packets. + check port 3 receive the packets. send mismatched packets:: sendp([Ether()/IP(dst="192.168.0.2")/NVGRE(TNI=0x8)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.1.2", dst="192.168.1.3")/UDP(sport=25,dport=23)/Raw("x"*80)], iface="enp27s0f0", count=1) @@ -1305,7 +1307,7 @@ Test case: MAC_IPV4_NVGRE_MAC_IPV4_UDP_PAY sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=0x8)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.1.2", dst="192.168.1.3")/UDP(sport=2,dport=23)/Raw("x"*80)], iface="enp27s0f0", count=1) sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=0x8)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.1.2", dst="192.168.1.3")/UDP(sport=25,dport=20)/Raw("x"*80)], iface="enp27s0f0", count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -1313,14 +1315,14 @@ Test case: MAC_IPV4_NVGRE_MAC_IPV4_UDP_PAY testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: MAC_IPV4_NVGRE_MAC_IPV4_TCP ====================================== 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / tcp src is 25 dst is 23 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / tcp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -1334,7 +1336,7 @@ Test case: MAC_IPV4_NVGRE_MAC_IPV4_TCP 2. create a rule:: - testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / tcp src is 25 dst is 23 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / tcp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -1343,7 +1345,7 @@ Test case: MAC_IPV4_NVGRE_MAC_IPV4_TCP sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.1.2", dst="192.168.1.3")/TCP(sport=25,dport=23)/Raw("x"*80)],iface="enp27s0f0",count=1) - check port 1 receive the packets. + check port 3 receive the packets. send mismatched packets:: sendp([Ether()/IP(dst="192.168.0.2")/NVGRE(TNI=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.1.2", dst="192.168.1.3")/TCP(sport=25,dport=23)/Raw("x"*80)],iface="enp27s0f0",count=1) @@ -1354,7 +1356,7 @@ Test case: MAC_IPV4_NVGRE_MAC_IPV4_TCP sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.1.2", dst="192.168.1.3")/TCP(sport=1,dport=23)/Raw("x"*80)],iface="enp27s0f0",count=1) sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.1.2", dst="192.168.1.3")/TCP(sport=25,dport=20)/Raw("x"*80)],iface="enp27s0f0",count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -1362,14 +1364,14 @@ Test case: MAC_IPV4_NVGRE_MAC_IPV4_TCP testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: MAC_IPV4_PFCP_NODE ============================= 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 0 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 0 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -1383,7 +1385,7 @@ Test case: MAC_IPV4_PFCP_NODE 2. DUT create switch filter rules for MAC_IPV4_PFCP_NODE to VF1:: - flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 0 / end actions vf id 1 / end + flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 0 / end actions represented_port ethdev_port_id 1 / end check the rule exists in the list. @@ -1395,14 +1397,14 @@ Test case: MAC_IPV4_PFCP_NODE sendp(Ether(dst="00:11:22:33:44:11")/IP()/UDP(dport=8805)/PFCP(Sfield=0),iface="enp134s0f1") - check port 1 receive the packet. + check port 3 receive the packet. send mismatched packets:: sendp(Ether(dst="00:11:22:33:44:11")/IP()/UDP(dport=8805)/PFCP(Sfield=1),iface="enp134s0f1") sendp(Ether(dst="00:11:22:33:44:11")/IPv6()/UDP(dport=8805)/PFCP(Sfield=0),iface="enp134s0f1") sendp(Ether(dst="00:11:22:33:44:11")/IPv6()/UDP(dport=8805)/PFCP(Sfield=1),iface="enp134s0f1") - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -1410,14 +1412,14 @@ Test case: MAC_IPV4_PFCP_NODE testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: MAC_IPV4_PFCP_SESSION ================================ 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 1 / end actions vf id 2 / end + testpmd> flow validate 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 1 / end actions represented_port ethdev_port_id 2 / end get the message:: @@ -1431,7 +1433,7 @@ Test case: MAC_IPV4_PFCP_SESSION 2. DUT create switch filter rules for MAC_IPV4_PFCP_SESSION to VF2:: - flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 1 / end actions vf id 2 / end + flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 1 / end actions represented_port ethdev_port_id 2 / end check the rule exists in the list. @@ -1443,14 +1445,14 @@ Test case: MAC_IPV4_PFCP_SESSION sendp(Ether(dst="00:11:22:33:44:11")/IP()/UDP(dport=8805)/PFCP(Sfield=1),iface="enp134s0f1") - check port 2 receive the packet. + check port 4 receive the packet. send mismatched packets:: sendp(Ether(dst="00:11:22:33:44:11")/IP()/UDP(dport=8805)/PFCP(Sfield=0),iface="enp134s0f1") sendp(Ether(dst="00:11:22:33:44:11")/IPv6()/UDP(dport=8805)/PFCP(Sfield=0),iface="enp134s0f1") sendp(Ether(dst="00:11:22:33:44:11")/IPv6()/UDP(dport=8805)/PFCP(Sfield=1),iface="enp134s0f1") - check the packets are not to port 2. + check the packets are not to port 4. 4. verify rules can be destroyed:: @@ -1458,14 +1460,14 @@ Test case: MAC_IPV4_PFCP_SESSION testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 2. + send matched packets, check the packets are not to port 4. Test case: MAC_IPV6_PFCP_NODE ============================= 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth / ipv6 / udp / pfcp s_field is 0 / end actions vf id 3 / end + testpmd> flow validate 0 ingress pattern eth / ipv6 / udp / pfcp s_field is 0 / end actions represented_port ethdev_port_id 3 / end get the message:: @@ -1479,7 +1481,7 @@ Test case: MAC_IPV6_PFCP_NODE 2. DUT create switch filter rules for MAC_IPV6_PFCP_NODE to VF3:: - flow create 0 ingress pattern eth / ipv6 / udp / pfcp s_field is 0 / end actions vf id 3 / end + flow create 0 ingress pattern eth / ipv6 / udp / pfcp s_field is 0 / end actions represented_port ethdev_port_id 3 / end check the rule exists in the list. @@ -1513,7 +1515,7 @@ Test case: MAC_IPV6_PFCP_SESSION 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth / ipv6 / udp / pfcp s_field is 1 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth / ipv6 / udp / pfcp s_field is 1 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -1527,7 +1529,7 @@ Test case: MAC_IPV6_PFCP_SESSION 2. DUT create switch filter rules for MAC_IPV6_PFCP_SESSION to VF1:: - flow create 0 ingress pattern eth / ipv6 / udp / pfcp s_field is 1 / end actions vf id 1 / end + flow create 0 ingress pattern eth / ipv6 / udp / pfcp s_field is 1 / end actions represented_port ethdev_port_id 1 / end check the rule exists in the list. @@ -1539,14 +1541,14 @@ Test case: MAC_IPV6_PFCP_SESSION sendp(Ether(dst="00:11:22:33:44:11")/IPv6()/UDP(dport=8805)/PFCP(Sfield=1),iface="enp134s0f1") - check port 1 receive the packet. + check port 3 receive the packet. send mismatched packets:: sendp(Ether(dst="00:11:22:33:44:11")/IP()/UDP(dport=8805)/PFCP(Sfield=0),iface="enp134s0f1") sendp(Ether(dst="00:11:22:33:44:11")/IP()/UDP(dport=8805)/PFCP(Sfield=1),iface="enp134s0f1") sendp(Ether(dst="00:11:22:33:44:11")/IPv6()/UDP(dport=8805)/PFCP(Sfield=0),iface="enp134s0f1") - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -1554,14 +1556,14 @@ Test case: MAC_IPV6_PFCP_SESSION testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: IP multicast ======================= 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth / ipv4 dst spec 224.0.0.0 dst mask 240.0.0.0 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth / ipv4 dst spec 224.0.0.0 dst mask 240.0.0.0 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -1575,7 +1577,7 @@ Test case: IP multicast 2. create a rule:: - testpmd> flow create 0 ingress pattern eth / ipv4 dst spec 224.0.0.0 dst mask 240.0.0.0 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv4 dst spec 224.0.0.0 dst mask 240.0.0.0 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -1584,12 +1586,12 @@ Test case: IP multicast sendp([Ether()/IP(dst="239.0.0.0")/TCP()/Raw("x"*80)], iface="enp27s0f0", count=1) - check port 1 receive the packets. + check port 3 receive the packets. send mismatched packets:: sendp([Ether()/IP(dst="128.0.0.0")/TCP()/Raw("x"*80)], iface="enp27s0f0", count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -1597,14 +1599,14 @@ Test case: IP multicast testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: L2 multicast ======================= 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth dst spec 01:00:5e:00:00:00 dst mask ff:ff:ff:80:00:00 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth dst spec 01:00:5e:00:00:00 dst mask ff:ff:ff:80:00:00 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -1618,7 +1620,7 @@ Test case: L2 multicast 2. create a rule:: - testpmd> flow create 0 ingress pattern eth dst spec 01:00:5e:00:00:00 dst mask ff:ff:ff:80:00:00 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth dst spec 01:00:5e:00:00:00 dst mask ff:ff:ff:80:00:00 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -1627,12 +1629,12 @@ Test case: L2 multicast sendp([Ether(dst="01:00:5e:7f:00:00")/IP()/TCP()/Raw("x"*80)], iface="enp27s0f0", count=1) - check port 1 receive the packets. + check port 3 receive the packets. send mismatched packets:: sendp([Ether(dst="01:00:5e:ff:00:00")/IP()/TCP()/Raw("x"*80)], iface="enp27s0f0", count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -1640,14 +1642,14 @@ Test case: L2 multicast testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: ethertype filter_PPPOD ================================= 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth type is 0x8863 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth type is 0x8863 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -1661,7 +1663,7 @@ Test case: ethertype filter_PPPOD 2. create a rule:: - testpmd> flow create 0 ingress pattern eth type is 0x8863 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth type is 0x8863 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -1670,12 +1672,12 @@ Test case: ethertype filter_PPPOD sendp([Ether(dst="00:11:22:33:44:55")/PPPoED()/PPP()/IP()/Raw("x" *80)],iface="enp27s0f0",count=1) - check port 1 receive the packets. + check port 3 receive the packets. send mismatched packets:: sendp([Ether(dst="00:11:22:33:44:55")/PPPoE()/PPP()/IP()/Raw("x" *80)],iface="enp27s0f0",count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -1683,14 +1685,14 @@ Test case: ethertype filter_PPPOD testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: ethertype filter_PPPOE ================================= 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth type is 0x8864 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth type is 0x8864 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -1704,7 +1706,7 @@ Test case: ethertype filter_PPPOE 2. create a rule:: - testpmd> flow create 0 ingress pattern eth type is 0x8864 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth type is 0x8864 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -1713,12 +1715,12 @@ Test case: ethertype filter_PPPOE sendp([Ether(dst="00:11:22:33:44:55")/PPPoE()/PPP()/IP()/Raw("x"*80)],iface="enp27s0f0",count=1) - check port 1 receive the packets. + check port 3 receive the packets. send mismatched packets:: sendp([Ether(dst="00:11:22:33:44:55")/PPPoED()/PPP()/IP()/Raw("x"*80)],iface="enp27s0f0",count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -1726,14 +1728,14 @@ Test case: ethertype filter_PPPOE testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: ethertype filter_IPV6 ================================= 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth type is 0x86dd / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth type is 0x86dd / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -1747,7 +1749,7 @@ Test case: ethertype filter_IPV6 2. create a rule:: - testpmd> flow create 0 ingress pattern eth type is 0x86dd / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth type is 0x86dd / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -1757,12 +1759,12 @@ Test case: ethertype filter_IPV6 sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", tc=3)/TCP(dport=23)/("X"*480)], iface="enp27s0f0", count=1) sendp([Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x86dd)/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", tc=3)/TCP(dport=23)/("X"*480)], iface="enp27s0f0", count=1) - check port 1 receive the packets. + check port 3 receive the packets. send mismatched packets:: sendp([Ether(dst="00:11:22:33:44:55")/IP()/TCP(dport=23)/("X"*480)], iface="enp27s0f0", count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -1770,7 +1772,7 @@ Test case: ethertype filter_IPV6 testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: UDP port filter_DHCP discovery ========================================= @@ -1780,7 +1782,7 @@ Therefore, for DHCP discovery packets, the udp srcport is 68 and the dstport is 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth / ipv4 / udp src is 68 dst is 67 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth / ipv4 / udp src is 68 dst is 67 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -1794,7 +1796,7 @@ Therefore, for DHCP discovery packets, the udp srcport is 68 and the dstport is 2. create a rule:: - testpmd> flow create 0 ingress pattern eth / ipv4 / udp src is 68 dst is 67 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv4 / udp src is 68 dst is 67 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -1803,13 +1805,13 @@ Therefore, for DHCP discovery packets, the udp srcport is 68 and the dstport is sendp([Ether(dst="00:11:22:33:44:55")/IP()/UDP(sport=68,dport=67)/BOOTP(chaddr="3c:fd:fe:b2:43:90")/DHCP(options=[("message-type","discover"),"end"])/Raw("X"*480)], iface="enp27s0f0", count=1) - check port 1 receive the packets. + check port 3 receive the packets. send mismatched packets:: sendp([Ether(dst="00:11:22:33:44:55")/IP()/UDP(sport=63,dport=67)/BOOTP(chaddr="3c:fd:fe:b2:43:90")/DHCP(options=[("message-type","discover"),"end"])/Raw("X"*480)], iface="enp27s0f0", count=1) sendp([Ether(dst="00:11:22:33:44:55")/IP()/UDP(sport=68,dport=69)/BOOTP(chaddr="3c:fd:fe:b2:43:90")/DHCP(options=[("message-type","discover"),"end"])/Raw("X"*480)], iface="enp27s0f0", count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -1817,7 +1819,7 @@ Therefore, for DHCP discovery packets, the udp srcport is 68 and the dstport is testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: UDP port filter_DHCP offer ===================================== @@ -1826,7 +1828,7 @@ Description: For DHCP offer packets, the udp srcport is 67 and the dstport is 68 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth / ipv4 / udp src is 67 dst is 68 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth / ipv4 / udp src is 67 dst is 68 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -1840,7 +1842,7 @@ Description: For DHCP offer packets, the udp srcport is 67 and the dstport is 68 2. create a rule:: - testpmd> flow create 0 ingress pattern eth / ipv4 / udp src is 67 dst is 68 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv4 / udp src is 67 dst is 68 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -1849,13 +1851,13 @@ Description: For DHCP offer packets, the udp srcport is 67 and the dstport is 68 sendp([Ether(dst="00:11:22:33:44:55")/IP()/UDP(sport=67,dport=68)/BOOTP(chaddr="3c:fd:fe:b2:43:90",yiaddr="192.168.1.0")/DHCP(options=[("message-type","offer"),"end"])/Raw("X"*480)], iface="enp27s0f0", count=1) - check port 1 receive the packets. + check port 3 receive the packets. send mismatched packets:: sendp([Ether(dst="00:11:22:33:44:55")/IP()/UDP(sport=63,dport=68)/BOOTP(chaddr="3c:fd:fe:b2:43:90",yiaddr="192.168.1.0")/DHCP(options=[("message-type","offer"),"end"])/Raw("X"*480)], iface="enp27s0f0", count=1) sendp([Ether(dst="00:11:22:33:44:55")/IP()/UDP(sport=67,dport=63)/BOOTP(chaddr="3c:fd:fe:b2:43:90",yiaddr="192.168.1.0")/DHCP(options=[("message-type","offer"),"end"])/Raw("X"*480)], iface="enp27s0f0", count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -1863,7 +1865,7 @@ Description: For DHCP offer packets, the udp srcport is 67 and the dstport is 68 testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: UDP port filter_VXLAN ================================ @@ -1872,7 +1874,7 @@ Description: The UDP dst port number used by VXLAN is 4789. 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth / ipv4 / udp dst is 4789 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth / ipv4 / udp dst is 4789 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -1886,7 +1888,7 @@ Description: The UDP dst port number used by VXLAN is 4789. 2. create a rule:: - testpmd> flow create 0 ingress pattern eth / ipv4 / udp dst is 4789 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv4 / udp dst is 4789 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -1895,12 +1897,12 @@ Description: The UDP dst port number used by VXLAN is 4789. sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3",frag=5)/TCP()/Raw("x"*80)],iface="enp27s0f0",count=1) - check port 1 receive the packets. + check port 3 receive the packets. send mismatched packets:: sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=2)/Ether()/IP(src="192.168.1.2", dst="192.168.1.3")/TCP()/Raw("x"*80)],iface="enp27s0f0",count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -1908,14 +1910,14 @@ Description: The UDP dst port number used by VXLAN is 4789. testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: MAC_VLAN filter ========================== 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -1929,7 +1931,7 @@ Test case: MAC_VLAN filter 2. create a rule:: - testpmd> flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -1938,13 +1940,13 @@ Test case: MAC_VLAN filter sendp([Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1)/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=2)/TCP()/Raw("X"*480)],iface="enp27s0f0",count=1) - check port 1 receive the packets. + check port 3 receive the packets. send mismatched packets:: sendp([Ether(dst="00:11:22:33:44:54",type=0x8100)/Dot1Q(vlan=1)/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=2)/TCP()/Raw("X"*480)],iface="enp27s0f0",count=1) sendp([Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=2)/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=2)/TCP()/Raw("X"*480)],iface="enp27s0f0",count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -1952,14 +1954,14 @@ Test case: MAC_VLAN filter testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: VLAN filter ====================== 1. validate a rule:: - testpmd> flow validate 0 ingress pattern eth / vlan tci is 1 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth / vlan tci is 1 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -1973,7 +1975,7 @@ Test case: VLAN filter 2. create a rule:: - testpmd> flow create 0 ingress pattern eth / vlan tci is 1 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth / vlan tci is 1 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -1982,12 +1984,12 @@ Test case: VLAN filter sendp([Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1)/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=2)/TCP()/Raw("X"*480)],iface="enp27s0f0",count=1) - check port 1 receive the packets. + check port 3 receive the packets. send mismatched packets:: sendp([Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=2)/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=2)/TCP()/Raw("X"*480)],iface="enp27s0f0",count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -1995,14 +1997,14 @@ Test case: VLAN filter testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: MAC_IPV4_L2TPv3 ========================== 1. validate a rule:: - testpmd> flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / l2tpv3oip session_id is 1 / end actions vf id 1 / end + testpmd> flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / l2tpv3oip session_id is 1 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -2016,7 +2018,7 @@ Test case: MAC_IPV4_L2TPv3 2. create a rule:: - testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / l2tpv3oip session_id is 1 / end actions vf id 1 / end + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / l2tpv3oip session_id is 1 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -2025,14 +2027,14 @@ Test case: MAC_IPV4_L2TPv3 sendp([Ether(dst='00:11:22:33:44:12')/IP(src='192.168.0.2', proto=115)/L2TP('\x00\x00\x00\x01')/('X'*480)], iface="enp27s0f0", count=1) - check port 1 receive the packet. + check port 3 receive the packet. send mismatched packets:: sendp([Ether(dst='00:11:22:33:44:12')/IP(src='192.168.0.2', proto=115)/L2TP('\x00\x00\x00\x02')/('X'*480)], iface="enp27s0f0", count=1) sendp([Ether(dst='00:11:22:33:44:12')/IP(src='192.168.1.2', proto=115)/L2TP('\x00\x00\x00\x01')/('X'*480)], iface="enp27s0f0", count=1) sendp([Ether(dst='00:11:22:33:44:12')/IP(dst='192.168.0.2', proto=115)/L2TP('\x00\x00\x00\x01')/('X'*480)], iface="enp27s0f0", count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -2040,14 +2042,14 @@ Test case: MAC_IPV4_L2TPv3 testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: MAC_IPV6_L2TPv3 ========================== 1. validate a rule:: - testpmd> flow validate 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / l2tpv3oip session_id is 1 / end actions vf id 1 / end + testpmd> flow validate 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / l2tpv3oip session_id is 1 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -2061,7 +2063,7 @@ Test case: MAC_IPV6_L2TPv3 2. create a rule:: - testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / l2tpv3oip session_id is 1 / end actions vf id 1 / end + testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / l2tpv3oip session_id is 1 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -2070,14 +2072,14 @@ Test case: MAC_IPV6_L2TPv3 sendp([Ether(dst='00:11:22:33:44:13')/IPv6(dst='1111:2222:3333:4444:5555:6666:7777:8888', nh=115)/L2TP('\x00\x00\x00\x01')/('X'*480)], iface="enp27s0f0", count=1) - check port 1 receive the packet. + check port 3 receive the packet. send mismatched packets:: sendp([Ether(dst='00:11:22:33:44:13')/IPv6(dst='1111:2222:3333:4444:5555:6666:7777:8888', nh=115)/L2TP('\x00\x00\x00\x02')/('X'*480)], iface="enp27s0f0", count=1) sendp([Ether(dst='00:11:22:33:44:13')/IPv6(dst='1111:2222:3333:4444:5555:6666:7777:9999', nh=115)/L2TP('\x00\x00\x00\x01')/('X'*480)], iface="enp27s0f0", count=1) sendp([Ether(dst='00:11:22:33:44:13')/IPv6(src='1111:2222:3333:4444:5555:6666:7777:8888', nh=115)/L2TP('\x00\x00\x00\x01')/('X'*480)], iface="enp27s0f0", count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -2085,14 +2087,14 @@ Test case: MAC_IPV6_L2TPv3 testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: MAC_IPV4_ESP ======================= 1. validate a rule:: - testpmd> flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / esp spi is 1 / end actions vf id 1 / end + testpmd> flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / esp spi is 1 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -2106,7 +2108,7 @@ Test case: MAC_IPV4_ESP 2. create a rule:: - testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / esp spi is 1 / end actions vf id 1 / end + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / esp spi is 1 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -2115,14 +2117,14 @@ Test case: MAC_IPV4_ESP sendp([Ether(dst="00:11:22:33:44:13")/IP(src="192.168.0.2", proto=50)/ESP(spi=1)/("X"*480)], iface="enp27s0f0", count=1) - check port 1 receive the packet. + check port 3 receive the packet. send mismatched packets:: sendp([Ether(dst="00:11:22:33:44:13")/IP(src="192.168.0.2", proto=50)/ESP(spi=2)/("X"*480)], iface="enp27s0f0", count=1) sendp([Ether(dst="00:11:22:33:44:13")/IP(src="192.168.1.2", proto=50)/ESP(spi=1)/("X"*480)], iface="enp27s0f0", count=1) sendp([Ether(dst="00:11:22:33:44:13")/IP(dst="192.168.0.2", proto=50)/ESP(spi=1)/("X"*480)], iface="enp27s0f0", count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -2130,14 +2132,14 @@ Test case: MAC_IPV4_ESP testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: MAC_IPV6_ESP ======================= 1. validate a rule:: - testpmd> flow validate 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / esp spi is 1 / end actions vf id 1 / end + testpmd> flow validate 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / esp spi is 1 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -2151,7 +2153,7 @@ Test case: MAC_IPV6_ESP 2. create a rule:: - testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / esp spi is 1 / end actions vf id 1 / end + testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / esp spi is 1 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -2160,14 +2162,14 @@ Test case: MAC_IPV6_ESP sendp([Ether(dst="00:11:22:33:44:13")/IPv6(dst="1111:2222:3333:4444:5555:6666:7777:8888", nh=50)/ESP(spi=1)/("X"*480)], iface="enp27s0f0", count=1) - check port 1 receive the packet. + check port 3 receive the packet. send mismatched packets:: sendp([Ether(dst="00:11:22:33:44:13")/IPv6(dst="1111:2222:3333:4444:5555:6666:7777:8888", nh=50)/ESP(spi=2)/("X"*480)], iface="enp27s0f0", count=1) sendp([Ether(dst="00:11:22:33:44:13")/IPv6(dst="1111:2222:3333:4444:5555:6666:7777:9999", nh=50)/ESP(spi=1)/("X"*480)], iface="enp27s0f0", count=1) sendp([Ether(dst="00:11:22:33:44:13")/IPv6(src="1111:2222:3333:4444:5555:6666:7777:8888", nh=50)/ESP(spi=1)/("X"*480)], iface="enp27s0f0", count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -2175,14 +2177,14 @@ Test case: MAC_IPV6_ESP testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: MAC_IPV4_AH ====================== 1. validate a rule:: - testpmd> flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / ah spi is 1 / end actions vf id 1 / end + testpmd> flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / ah spi is 1 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -2196,7 +2198,7 @@ Test case: MAC_IPV4_AH 2. create a rule:: - testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / ah spi is 1 / end actions vf id 1 / end + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / ah spi is 1 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -2205,14 +2207,14 @@ Test case: MAC_IPV4_AH sendp([Ether(dst="00:11:22:33:44:13")/IP(src="192.168.0.2", proto=51)/AH(spi=1)/("X"*480)], iface="enp27s0f0", count=1) - check port 1 receive the packet. + check port 3 receive the packet. send mismatched packets:: sendp([Ether(dst="00:11:22:33:44:13")/IP(src="192.168.0.2", proto=51)/AH(spi=2)/("X"*480)], iface="enp27s0f0", count=1) sendp([Ether(dst="00:11:22:33:44:13")/IP(src="192.168.1.2", proto=51)/AH(spi=1)/("X"*480)], iface="enp27s0f0", count=1) sendp([Ether(dst="00:11:22:33:44:13")/IP(dst="192.168.0.2", proto=51)/AH(spi=1)/("X"*480)], iface="enp27s0f0", count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -2220,14 +2222,14 @@ Test case: MAC_IPV4_AH testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: MAC_IPV6_AH ====================== 1. validate a rule:: - testpmd> flow validate 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / ah spi is 1 / end actions vf id 1 / end + testpmd> flow validate 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / ah spi is 1 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -2241,7 +2243,7 @@ Test case: MAC_IPV6_AH 2. create a rule:: - testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / ah spi is 1 / end actions vf id 1 / end + testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / ah spi is 1 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -2250,14 +2252,14 @@ Test case: MAC_IPV6_AH sendp([Ether(dst="00:11:22:33:44:13")/IPv6(dst="1111:2222:3333:4444:5555:6666:7777:8888", nh=51)/AH(spi=1)/("X"*480)], iface="enp27s0f0", count=1) - check port 1 receive the packet. + check port 3 receive the packet. send mismatched packets:: sendp([Ether(dst="00:11:22:33:44:13")/IPv6(dst="1111:2222:3333:4444:5555:6666:7777:8888", nh=51)/AH(spi=2)/("X"*480)], iface="enp27s0f0", count=1) sendp([Ether(dst="00:11:22:33:44:13")/IPv6(dst="1111:2222:3333:4444:5555:6666:7777:9999", nh=51)/AH(spi=1)/("X"*480)], iface="enp27s0f0", count=1) sendp([Ether(dst="00:11:22:33:44:13")/IPv6(src="1111:2222:3333:4444:5555:6666:7777:8888", nh=51)/AH(spi=1)/("X"*480)], iface="enp27s0f0", count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -2265,14 +2267,14 @@ Test case: MAC_IPV6_AH testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: MAC_IPV4_NAT-T-ESP ============================= 1. validate a rule:: - testpmd> flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / udp / esp spi is 1 / end actions vf id 1 / end + testpmd> flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / udp / esp spi is 1 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -2286,7 +2288,7 @@ Test case: MAC_IPV4_NAT-T-ESP 2. create a rule:: - testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / udp / esp spi is 1 / end actions vf id 1 / end + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / udp / esp spi is 1 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -2295,14 +2297,14 @@ Test case: MAC_IPV4_NAT-T-ESP sendp([Ether(dst="00:11:22:33:44:13")/IP(src="192.168.0.2")/UDP(dport=4500)/ESP(spi=1)/("X"*480)], iface="enp27s0f0", count=1) - check port 1 receive the packet. + check port 3 receive the packet. send mismatched packets:: sendp([Ether(dst="00:11:22:33:44:13")/IP(src="192.168.0.2")/UDP(dport=4500)/ESP(spi=2)/("X"*480)], iface="enp27s0f0", count=1) sendp([Ether(dst="00:11:22:33:44:13")/IP(src="192.168.1.2")/UDP(dport=4500)/ESP(spi=1)/("X"*480)], iface="enp27s0f0", count=1) sendp([Ether(dst="00:11:22:33:44:13")/IP(dst="192.168.0.2")/UDP(dport=4500)/ESP(spi=1)/("X"*480)], iface="enp27s0f0", count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -2310,14 +2312,14 @@ Test case: MAC_IPV4_NAT-T-ESP testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: MAC_IPV6_NAT-T-ESP ============================= 1. validate a rule:: - testpmd> flow validate 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / udp / esp spi is 1 / end actions vf id 1 / end + testpmd> flow validate 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / udp / esp spi is 1 / end actions represented_port ethdev_port_id 1 / end get the message:: @@ -2331,7 +2333,7 @@ Test case: MAC_IPV6_NAT-T-ESP 2. create a rule:: - testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / udp / esp spi is 1 / end actions vf id 1 / end + testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / udp / esp spi is 1 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -2340,14 +2342,14 @@ Test case: MAC_IPV6_NAT-T-ESP sendp([Ether(dst="00:11:22:33:44:13")/IPv6(dst="1111:2222:3333:4444:5555:6666:7777:8888")/UDP(dport=4500)/ESP(spi=1)/("X"*480)], iface="enp27s0f0", count=1) - check port 1 receive the packet. + check port 3 receive the packet. send mismatched packets:: sendp([Ether(dst="00:11:22:33:44:13")/IPv6(dst="1111:2222:3333:4444:5555:6666:7777:8888")/UDP(dport=4500)/ESP(spi=2)/("X"*480)], iface="enp27s0f0", count=1) sendp([Ether(dst="00:11:22:33:44:13")/IPv6(dst="1111:2222:3333:4444:5555:6666:7777:9999")/UDP(dport=4500)/ESP(spi=1)/("X"*480)], iface="enp27s0f0", count=1) sendp([Ether(dst="00:11:22:33:44:13")/IPv6(src="1111:2222:3333:4444:5555:6666:7777:8888")/UDP(dport=4500)/ESP(spi=1)/("X"*480)], iface="enp27s0f0", count=1) - check the packets are not to port 1. + check the packets are not to port 3. 4. verify rules can be destroyed:: @@ -2355,7 +2357,7 @@ Test case: MAC_IPV6_NAT-T-ESP testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test Case: multirules test ========================== @@ -2363,18 +2365,18 @@ Test Case: multirules test Subcase 1: add existing rules but with different vfs ---------------------------------------------------- -1. Launch dpdk on VF0, VF1 and VF2, and VF0 request DCF mode:: +1. Launch dpdk on VF0, VF1 and VF2, and VF0 request DCF mode, representing VF1, VF2:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xf -n 4 -a 0000:18:01.0,cap=dcf -a 0000:18:01.1 -a 0000:18:01.2 -- -i - testpmd> set portlist 1,2 + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xf -n 4 -a 0000:18:01.0,cap=dcf,representor=[1,2] -a 0000:18:01.1 -a 0000:18:01.2 -- -i + testpmd> set portlist 3,4 testpmd> set fwd rxonly testpmd> set verbose 1 testpmd> start 2. create rules with same pattern items but to different vfs:: - testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions vf id 1 / end - testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions vf id 2 / end + testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end + testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 2 / end testpmd> flow list 0 check both rules exist in the list. @@ -2383,7 +2385,7 @@ Subcase 1: add existing rules but with different vfs sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=3)/UDP(sport=25,dport=23)/("X"*480)], iface="ens786f0", count=1) - check both port 1 and 2 receive the packet. + check both port 3 and 4 receive the packet. 4. destroy the rule 0, and send the matched packets:: @@ -2391,7 +2393,7 @@ Subcase 1: add existing rules but with different vfs testpmd> flow list 0 check only rule 1 exists in the list. - send the same matched packets, check only port 2 receives the packets. + send the same matched packets, check only port 4 receives the packets. 5. destroy rule 1, send the matched packets:: @@ -2399,15 +2401,15 @@ Subcase 1: add existing rules but with different vfs testpmd> flow list 0 check no rule exists in the list - send the same matched packets, check the packets are not to port 1 and 2. + send the same matched packets, check the packets are not to port 3 and 4. Subcase 2: add existing rules with the same vfs ----------------------------------------------- 1. create two indentical rules:: - testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions vf id 1 / end - testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end + testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end 2. check the first rule is created successfully, and the second one can not be created successfully, @@ -2425,18 +2427,18 @@ Subcase 2: add existing rules with the same vfs Subcase 3: add two rules with one rule's input set included in the other ------------------------------------------------------------------------- -1. Launch dpdk on VF0, VF1 and VF2, and VF0 request DCF mode:: +1. Launch dpdk on VF0, VF1 and VF2, and VF0 request DCF mode, representing VF1 and VF2:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xf -n 4 -a 0000:18:01.0,cap=dcf -a 0000:18:01.1 -a 0000:18:01.2 -- -i - testpmd> set portlist 1,2 + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xf -n 4 -a 0000:18:01.0,cap=dcf,representor=[1,2] -a 0000:18:01.1 -a 0000:18:01.2 -- -i + testpmd> set portlist 3,4 testpmd> set fwd rxonly testpmd> set verbose 1 testpmd> start 2. create rules with one rule's input set included in the other:: - testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 / end actions vf id 1 / end - testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 / end actions vf id 2 / end + testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 / end actions represented_port ethdev_port_id 1 / end + testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 / end actions represented_port ethdev_port_id 2 / end testpmd> flow list 0 check both rules exist in the list. @@ -2445,12 +2447,12 @@ Subcase 3: add two rules with one rule's input set included in the other sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1",dst="192.168.0.2")/("X"*480)], iface="ens786f0", count=1) - check both port 1 and 2 receive the packet. + check both port 3 and 4 receive the packet. send a packet that only matches the rule 0 but not rule 1:: sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1",dst="192.168.0.3")/("X"*480)], iface="ens786f0", count=1) - check only port 1 receives the packet. + check only port 3 receives the packet. 4. destroy the rule 0, and send the packet p0:: @@ -2458,7 +2460,7 @@ Subcase 3: add two rules with one rule's input set included in the other testpmd> flow list 0 check only rule 1 exists in the list. - send the matched packet p0, check only port 2 receives the packet. + send the matched packet p0, check only port 4 receives the packet. 5. destroy rule 1, send the packet p0:: @@ -2466,16 +2468,16 @@ Subcase 3: add two rules with one rule's input set included in the other testpmd> flow list 0 check no rule exists in the list. - send the matched packet p0, check the packet are not to port 1 and 2. + send the matched packet p0, check the packet are not to port 3 and 4. Subcase 4: different input set, same vf id ------------------------------------------ 1. DUT create switch filter rules for MAC_IPV4_PFCP_SESSION and MAC_IPV4_PFCP_NODE to VF1:: - testpmd> flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 0 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 0 / end actions represented_port ethdev_port_id 1 / end Flow rule #0 created - testpmd> flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 1 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 1 / end actions represented_port ethdev_port_id 1 / end Flow rule #1 created check the rule exists in the list. @@ -2490,13 +2492,13 @@ Subcase 4: different input set, same vf id sendp(Ether(dst="00:11:22:33:44:11")/IP()/UDP(dport=8805)/PFCP(Sfield=0),iface="enp134s0f1") sendp(Ether(dst="00:11:22:33:44:11")/IP()/UDP(dport=8805)/PFCP(Sfield=1),iface="enp134s0f1") - check port 1 receive the two packets. + check port 3 receive the two packets. send mismatched packets:: sendp(Ether(dst="00:11:22:33:44:11")/IPv6()/UDP(dport=8805)/PFCP(Sfield=1),iface="enp134s0f1") sendp(Ether(dst="00:11:22:33:44:11")/IPv6()/UDP(dport=8805)/PFCP(Sfield=0),iface="enp134s0f1") - check the packets are not to port 1. + check the packets are not to port 3. 3. verify rules can be destroyed:: @@ -2504,16 +2506,16 @@ Subcase 4: different input set, same vf id testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Subcase 5: different input set, different vf id ----------------------------------------------- 1. DUT create switch filter rules for MAC_IPV4_PFCP_SESSION and MAC_IPV4_PFCP_NODE to VF1:: - testpmd> flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 0 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 0 / end actions represented_port ethdev_port_id 1 / end Flow rule #0 created - testpmd> flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 1 / end actions vf id 2 / end + testpmd> flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 1 / end actions represented_port ethdev_port_id 2 / end Flow rule #1 created check the rule exists in the list. @@ -2528,13 +2530,13 @@ Subcase 5: different input set, different vf id sendp(Ether(dst="00:11:22:33:44:11")/IP()/UDP(dport=8805)/PFCP(Sfield=0),iface="enp134s0f1") sendp(Ether(dst="00:11:22:33:44:11")/IP()/UDP(dport=8805)/PFCP(Sfield=1),iface="enp134s0f1") - check port 1 receive the first packet, port 2 receive the second packet. + check port 3 receive the first packet, port 4 receive the second packet. send mismatched packets:: sendp(Ether(dst="00:11:22:33:44:11")/IPv6()/UDP(dport=8805)/PFCP(Sfield=1),iface="enp134s0f1") sendp(Ether(dst="00:11:22:33:44:11")/IPv6()/UDP(dport=8805)/PFCP(Sfield=0),iface="enp134s0f1") - check the packets are not to port 1 or port 2. + check the packets are not to port 3 or port 4. 3. verify rules can be destroyed:: @@ -2542,7 +2544,7 @@ Subcase 5: different input set, different vf id testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1 or port 2. + send matched packets, check the packets are not to port 3 or port 4. Test case: test forwarding with single vf ========================================= @@ -2556,7 +2558,7 @@ received and forwarded when there is one vf for forwarding, and no packets are d 2. create a rule with input set [Source IP], [Dest IP]:: - testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.1 dst is 192.168.0.2 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.1 dst is 192.168.0.2 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list @@ -2565,10 +2567,10 @@ received and forwarded when there is one vf for forwarding, and no packets are d sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1",dst="192.168.0.2")/("X"*480)], iface="ens786f0", count=1) -4. check port 1 receives the packet and forward it, and no packets are dropped:: +4. check port 3 receives the packet and forward it, and no packets are dropped:: testpmd> stop - ---------------------- Forward statistics for port 1 ---------------------- + ---------------------- Forward statistics for port 3 ---------------------- RX-packets: 1 RX-dropped: 0 RX-total: 1 TX-packets: 1 TX-dropped: 0 TX-total: 1 ---------------------------------------------------------------------------- @@ -2578,7 +2580,7 @@ received and forwarded when there is one vf for forwarding, and no packets are d TX-packets: 1 TX-dropped: 0 TX-total: 1 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - check the RX-packets and TX-packets of port 1 are both 1, and the TX-dropped in + check the RX-packets and TX-packets of port 3 are both 1, and the TX-dropped in "Accumulated forward statistics for all ports" is 0. Test case: test forwarding with multi vfs @@ -2588,17 +2590,17 @@ Description: This case is used to test the packets that match switch filter rule can be received and forwarded when there are multi vfs for forwarding, and no packets are dropped. -1. Launch dpdk on VF0, VF1 and VF2, and VF0 request DCF mode:: +1. Launch dpdk on VF0, VF1 and VF2, and VF0 request DCF mode, representing VF1 and VF2:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xf -n 4 -a 0000:18:01.0,cap=dcf -a 0000:18:01.1 -a 0000:18:01.2 -- -i - testpmd> set portlist 1,2 + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xf -n 4 -a 0000:18:01.0,cap=dcf,representor=[1,2] -a 0000:18:01.1 -a 0000:18:01.2 -- -i + testpmd> set portlist 3,4 testpmd> set fwd mac testpmd> set verbose 1 testpmd> start 2. create a rule with input set [Source IP], [Dest IP]:: - testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.1 dst is 192.168.0.2 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.1 dst is 192.168.0.2 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list @@ -2607,15 +2609,15 @@ are dropped. sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1",dst="192.168.0.2")/("X"*480)], iface="ens786f0", count=1) -4. check port 1 receives the packet, and forward it to port 2, and no packets are dropped:: +4. check port 3 receives the packet, and forward it to port 4, and no packets are dropped:: testpmd> stop - ---------------------- Forward statistics for port 1 ---------------------- + ---------------------- Forward statistics for port 3 ---------------------- RX-packets: 1 RX-dropped: 0 RX-total: 1 TX-packets: 0 TX-dropped: 0 TX-total: 0 ---------------------------------------------------------------------------- - ---------------------- Forward statistics for port 2 ---------------------- + ---------------------- Forward statistics for port 4 ---------------------- RX-packets: 0 RX-dropped: 0 RX-total: 0 TX-packets: 1 TX-dropped: 0 TX-total: 1 ---------------------------------------------------------------------------- @@ -2626,7 +2628,7 @@ are dropped. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - check the RX-packets of port 1 is 1, the TX-packets of port 2 is 1, and the TX-dropped in + check the RX-packets of port 3 is 1, the TX-packets of port 4 is 1, and the TX-dropped in "Accumulated forward statistics for all ports" is 0. Test case: Max vfs @@ -2659,17 +2661,19 @@ This case is designed based on 4*25G NIC. ./usertools/dpdk-devbind.py -b vfio-pci 0000:18:01.0 -6. launch dpdk on VF0, and request DCF mode:: +6. launch dpdk on VF0, and request DCF mode, representing VF1 to VF63:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xf -n 4 -a 0000:18:01.0,cap=dcf -- -i + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xf -n 4 \ + -a 0000:18:01.0,cap=dcf,representor=[1-63] \ + -- -i 7. set a switch rule to each VF from DCF, totally 63 rules:: - testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.1 / tcp / end actions vf id 1 / end - testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.2 / tcp / end actions vf id 2 / end - testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.3 / tcp / end actions vf id 3 / end + testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.1 / tcp / end actions represented_port ethdev_port_id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.2 / tcp / end actions represented_port ethdev_port_id 2 / end + testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.3 / tcp / end actions represented_port ethdev_port_id 3 / end ...... - testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.63 / tcp / end actions vf id 63 / end + testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.63 / tcp / end actions represented_port ethdev_port_id 63 / end testpmd> flow list 0 check the rules exist in the list. @@ -2718,9 +2722,9 @@ will not hang and provide a friendly output. 1. create the following nvgre rules:: - testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 0x8 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 dst is 23 / end actions vf id 1 / end - testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.2 / nvgre tni is 0x8 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 / end actions vf id 1 / end - testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.3 / nvgre tni is 0x8 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp dst is 23 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 0x8 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 dst is 23 / end actions represented_port ethdev_port_id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.2 / nvgre tni is 0x8 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 / end actions represented_port ethdev_port_id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.3 / nvgre tni is 0x8 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp dst is 23 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rules exist in the list. @@ -2728,7 +2732,7 @@ will not hang and provide a friendly output. 2. the three rules have run out of field vectors, and continue to create the following rule:: - testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.10 / nvgre tni is 0x8 / eth dst is 68:05:ca:8d:ed:a1 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / udp src is 25 dst is 23 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.10 / nvgre tni is 0x8 / eth dst is 68:05:ca:8d:ed:a1 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end check the rule can not be created successfully, and testpmd provide a friendly output, showing:: @@ -2748,12 +2752,12 @@ will not hang and provide a friendly output. sendp([Ether()/IP(dst="192.168.0.2")/NVGRE(TNI=0x8)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3")/UDP(sport=50,dport=23)/Raw("x"*80)],iface="ens786f0",count=1) sendp([Ether()/IP(dst="192.168.0.3")/NVGRE(TNI=0x8)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3")/UDP(sport=50,dport=23)/Raw("x"*80)],iface="ens786f0",count=1) - check port 1 receives the packets + check port 3 receives the packets send mismatched packets:: sendp([Ether()/IP(dst="192.168.0.5")/NVGRE(TNI=0x8)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3")/UDP(sport=50,dport=23)/Raw("x"*80)],iface="ens786f0",count=1) - check the packets are not to port 1. + check the packets are not to port 3. 5. verify rules can be destroyed:: @@ -2761,7 +2765,7 @@ will not hang and provide a friendly output. testpmd> flow list 0 check the rules not exist in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: negative cases ========================= @@ -2771,7 +2775,7 @@ Subcase 1: can not create rule on vf 1 1. create rule on vf 1:: - testpmd> flow create 1 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions vf id 1 / end + testpmd> flow create 1 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions port_representor port_id 1 / end Failed to create flow, report message:: @@ -2790,12 +2794,12 @@ Subcase 2: unsupported pattern in os default package 2. create unsupported pattern in os default package:: - testpmd> flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x0021 / end actions vf id 1 / end - testpmd> flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 0 / end actions vf id 1 / end - testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.2 / l2tpv3oip session_id is 1 / end actions vf id 1 / end - testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.2 / esp spi is 1 / end actions vf id 1 / end - testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.2 / ah spi is 1 / end actions vf id 1 / end - testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.2 / udp / esp spi is 1 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x0021 / end actions represented_port ethdev_port_id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 0 / end actions represented_port ethdev_port_id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.2 / l2tpv3oip session_id is 1 / end actions represented_port ethdev_port_id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.2 / esp spi is 1 / end actions represented_port ethdev_port_id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.2 / ah spi is 1 / end actions represented_port ethdev_port_id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.2 / udp / esp spi is 1 / end actions represented_port ethdev_port_id 1 / end Failed to create flow, report message:: @@ -2812,7 +2816,7 @@ Subcase 3: unsupported input set 1. create an nvgre rule with unsupported input set field [inner tos]:: - testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 tos is 4 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 tos is 4 / end actions represented_port ethdev_port_id 1 / end Failed to create flow, report message:: @@ -2829,7 +2833,7 @@ Subcase 4: duplicated rules 1. create a rule:: - testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -2895,23 +2899,6 @@ Subcase 7: void input set value check the rule not exists in the list. -Subcase 8: invalid vf id ------------------------- - -1. create a rule with invalid vf id 5:: - - testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / tcp src is 25 dst is 23 / end actions vf id 5 / end - - Failed to create flow, report message:: - - Invalid vf id: Invalid argument - -2. check the rule list:: - - testpmd> flow list 0 - - check the rule not exists in the list. - Subcase 9: delete a non-existing rule ------------------------------------- @@ -2945,7 +2932,7 @@ other rules. 1. create a rule with input set length longer than 32 bytes:: - testpmd> flow create 0 ingress pattern eth / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 tc is 3 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 tc is 3 / end actions represented_port ethdev_port_id 1 / end Failed to create flow, report message:: @@ -2959,7 +2946,7 @@ other rules. 3. create a MAC_IPV6_UDP_PAY rule:: - testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / udp src is 25 dst is 23 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -2968,13 +2955,13 @@ other rules. sendp([Ether(dst="68:05:ca:8d:ed:a8")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1518", dst="CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3)/UDP(sport=25,dport=23)/("X"*480)], iface="ens786f0",count=1) - check port 1 receive the packet. + check port 3 receive the packet. send mismatched packets:: sendp([Ether(dst="68:05:ca:8d:ed:a8")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1518", dst="CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3)/UDP(sport=30,dport=23)/("X"*480)], iface="ens786f0",count=1) sendp([Ether(dst="68:05:ca:8d:ed:a8")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1518", dst="CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3)/UDP(sport=25,dport=19)/("X"*480)], iface="ens786f0",count=1) - check the packets are not to port 1. + check the packets are not to port 3. 5. verify rules can be destroyed:: @@ -2982,18 +2969,29 @@ other rules. testpmd> flow list 0 check the rule not exists in the list. - send matched packets, check the packets are not to port 1. + send matched packets, check the packets are not to port 3. Test case: negative validation ============================== Note: some of the error messages may be different. -Subcase 1: can not create rule on vf 1 --------------------------------------- +Subcase 1: can not create to vf rule on a representor +----------------------------------------------------- + +1. validate rule on representor 1 which is at port 1:: + + testpmd> flow validate 1 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end + + get the error message:: + + Failed to create parser engine.: Invalid argument + +2. list the rule:: + + testpmd> flow list 1 -1. validate rule on vf 1:: + there is no rule listed. - testpmd> flow validate 1 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions vf id 1 / end get the error message:: @@ -3012,12 +3010,12 @@ Subcase 2: unsupported patterns in os default 2. validate unsupported patterns in os default:: - testpmd> flow validate 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x0021 / end actions vf id 1 / end - testpmd> flow validate 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 0 / end actions vf id 1 / end - testpmd> flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / l2tpv3oip session_id is 1 / end actions vf id 1 / end - testpmd> flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / esp spi is 1 / end actions vf id 1 / end - testpmd> flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / ah spi is 1 / end actions vf id 1 / end - testpmd> flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / udp / esp spi is 1 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x0021 / end actions represented_port ethdev_port_id 1 / end + testpmd> flow validate 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 0 / end actions represented_port ethdev_port_id 1 / end + testpmd> flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / l2tpv3oip session_id is 1 / end actions represented_port ethdev_port_id 1 / end + testpmd> flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / esp spi is 1 / end actions represented_port ethdev_port_id 1 / end + testpmd> flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / ah spi is 1 / end actions represented_port ethdev_port_id 1 / end + testpmd> flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / udp / esp spi is 1 / end actions represented_port ethdev_port_id 1 / end get the error message:: @@ -3034,7 +3032,7 @@ Subcase 3: unsupported input set 1. validate an nvgre rule with unsupported input set field [inner tos]:: - testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 tos is 4 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 tos is 4 / end actions represented_port ethdev_port_id 1 / end get the error message:: @@ -3085,7 +3083,7 @@ Subcase 6: void input set value 1. validate a rule with void input set value:: - testpmd> flow validate 0 ingress pattern eth / ipv4 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth / ipv4 / end actions represented_port ethdev_port_id 1 / end get the error message:: @@ -3097,29 +3095,12 @@ Subcase 6: void input set value check the rule not exists in the list. -Subcase 7: invalid vf id ------------------------- - -1. validate a rule with invalid vf id 5:: - - testpmd> flow validate 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / tcp src is 25 dst is 23 / end actions vf id 5 / end - - get the error message:: - - Invalid vf id: Invalid argument - -3. check the rule list:: - - testpmd> flow list 0 - - check the rule not exists in the list. - Subcase 8: long switch rule --------------------------- 1. validate a rule with input set length longer than 32 bytes:: - testpmd> flow validate 0 ingress pattern eth / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 tc is 3 / end actions vf id 1 / end + testpmd> flow validate 0 ingress pattern eth / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 tc is 3 / end actions represented_port ethdev_port_id 1 / end get the error message:: @@ -3139,7 +3120,7 @@ Subcase 1: DCF stop/DCF start 1. create MAC_IPV4_UDP_PAY rule:: - testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions vf id 1 / end + testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end testpmd> flow list 0 check the rule exists in the list. @@ -3148,14 +3129,14 @@ Subcase 1: DCF stop/DCF start sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=3)/UDP(sport=25,dport=23)/("X"*480)], iface="ens786f0", count=1) - check port 1 receive the packet. + check port 3 receive the packet. 3. stop the DCF, then start the DCF:: tetspmd> port stop 0 testpmd> port start 0 -4. send matched packets, port 1 can't receive the packets. +4. send matched packets, port 3 can't receive the packets. Test case: Drop action test ===========================