From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 50DB2A0562; Tue, 31 Mar 2020 09:22:37 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 3E9E91BFD4; Tue, 31 Mar 2020 09:22:37 +0200 (CEST) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id 10BEE2BCE for ; Tue, 31 Mar 2020 09:22:34 +0200 (CEST) IronPort-SDR: umXgfqJtst7g8VTWXX2ya0Ej3sSn+BXv0UGMeqPGnKj0Pkw77df4jkCzbggWln+5oQ+ypCmyc8 4GMmQVCEgBhg== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Mar 2020 00:22:34 -0700 IronPort-SDR: ddBKr9S7y6OChu3oYY1AlBQ2McD4WfKVObg8n2Du8weKbUp5qRJxOCHskP3HVnV3CxDOWLL7hr k/Qqr9XYSFmw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,327,1580803200"; d="scan'208";a="267186764" Received: from intel.sh.intel.com ([10.239.255.137]) by orsmga002.jf.intel.com with ESMTP; 31 Mar 2020 00:22:33 -0700 From: Lunyuan Cui To: dts@dpdk.org Cc: Lunyuan Cui Date: Tue, 31 Mar 2020 07:08:46 +0000 Message-Id: <20200331070847.17395-2-lunyuanx.cui@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200331070847.17395-1-lunyuanx.cui@intel.com> References: <20200331070847.17395-1-lunyuanx.cui@intel.com> Subject: [dts] [PATCH V1 1/2] test_plans/generic_flow_api: add l2 mac addr fdir filter test plan X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dts-bounces@dpdk.org Sender: "dts" FVL enable src MAC address and dst MAC address as FDIR's input set for ipv4-other. Add test plan for it. Signed-off-by: Lunyuan Cui --- test_plans/generic_flow_api_test_plan.rst | 266 ++++++++++++++++++++++ 1 file changed, 266 insertions(+) diff --git a/test_plans/generic_flow_api_test_plan.rst b/test_plans/generic_flow_api_test_plan.rst index 380d9e8..a3f49fb 100644 --- a/test_plans/generic_flow_api_test_plan.rst +++ b/test_plans/generic_flow_api_test_plan.rst @@ -1423,3 +1423,269 @@ Test case: igb flexbytes testpmd> flow list 0 testpmd> flow flush 0 testpmd> flow list 0 + +Test case: fdir_L2_mac_filter +============================= + Prerequisites: + + bind the PF to dpdk driver:: + ./usertools/dpdk-devbind.py -b igb_uio 0000:81:00.0 + + launch testpmd:: + ./x86_64-native-linuxapp-gcc/app/testpmd -l 0-3 -n 4 -w 0000:81:00.0 -- -i --rxq=4 --txq=4 + +1. basic test + + 1) validate a rule:: + testpmd> flow validate 0 ingress pattern eth dst is 11:11:11:11:11:11 / ipv4 / end actions mark id 1 / rss / end + + Verify the commend can validete:: + Flow rule validated + + 2) create a rule:: + testpmd> flow create 0 ingress pattern eth dst is 11:11:11:11:11:11 / ipv4 / end actions mark id 1 / rss / end + + send packets match rule 0:: + sendp(Ether(src='99:99:99:99:99:99',dst='11:11:11:11:11:11')/IP(src=RandIP(),dst='2.2.2.5')/"Hello!0",iface="enp129s0f1") + + Verify all packets can rss and mark. + + send packets not match rule 0:: + sendp(Ether(src='99:99:99:99:99:99',dst='22:22:22:22:22:22')/IP(src=RandIP(),dst='2.2.2.5')/"Hello!0",iface="enp129s0f1") + + Verify all packets can not mark. + + 3) list the rule:: + testpmd> flow list 0 + + Verify there are one rule. + + 4) destory the rule:: + testpmd> flow destroy 0 rule 0 + + send packets match rule 0:: + sendp(Ether(src='99:99:99:99:99:99',dst='11:11:11:11:11:11')/IP(src=RandIP(),dst='2.2.2.5')/"Hello!0",iface="enp129s0f1") + + Verify all packets can not mark. + + 5) list the rule:: + testpmd> flow list 0 + + Verify there are no rule. + + 6) validate a rule:: + testpmd> flow validate 0 ingress pattern eth src is 99:99:99:99:99:99 / ipv4 / end actions mark id 1 / rss / end + + Verify the commend can validete:: + Flow rule validated + + 7) create a rule:: + testpmd> flow create 0 ingress pattern eth src is 99:99:99:99:99:99 / ipv4 / end actions mark id 1 / rss / end + + send packets match rule 0:: + sendp(Ether(src='99:99:99:99:99:99',dst='11:11:11:11:11:11')/IP(src=RandIP(),dst='2.2.2.5')/"Hello!0",iface="enp129s0f1") + + Verify all packets can rss and mark. + + send packets not match rule 0:: + sendp(Ether(src='88:88:88:88:88:88',dst='11:11:11:11:11:11')/IP(src=RandIP(),dst='2.2.2.5')/"Hello!0",iface="enp129s0f1") + + Verify all packets can not mark. + + 8) list the rule:: + testpmd> flow list 0 + + Verify there are one rule. + + 9) destory the rule:: + testpmd> flow destroy 0 rule 0 + + send packets match rule 0:: + sendp(Ether(src='99:99:99:99:99:99',dst='11:11:11:11:11:11')/IP(src=RandIP(),dst='2.2.2.5')/"Hello!0",iface="enp129s0f1") + + Verify all packets can not mark. + + 10) list the rule:: + testpmd> flow list 0 + + Verify there are no rule. + + 11) validate a rule:: + testpmd> flow validate 0 ingress pattern eth src is 99:99:99:99:99:99 dst is 11:11:11:11:11:11 / ipv4 / end actions mark id 1 / rss / end + + Verify the commend can validete:: + Flow rule validated + + 12) create a rule:: + testpmd> flow create 0 ingress pattern eth src is 99:99:99:99:99:99 dst is 11:11:11:11:11:11 / ipv4 / end actions mark id 1 / rss / end + + send packets match rule 0:: + sendp(Ether(src='99:99:99:99:99:99',dst='11:11:11:11:11:11')/IP(src=RandIP(),dst='2.2.2.5')/"Hello!0",iface="enp129s0f1") + + Verify all packets can rss and mark. + + send packets not match rule 0:: + sendp(Ether(src='99:99:99:99:99:99',dst='22:22:22:22:22:22')/IP(src=RandIP(),dst='2.2.2.5')/"Hello!0",iface="enp129s0f1") + sendp(Ether(src='88:88:88:88:88:88',dst='11:11:11:11:11:11')/IP(src=RandIP(),dst='2.2.2.5')/"Hello!0",iface="enp129s0f1") + sendp(Ether(src='88:88:88:88:88:88',dst='22:22:22:22:22:22')/IP(src=RandIP(),dst='2.2.2.5')/"Hello!0",iface="enp129s0f1") + + Verify all packets can not mark. + + 13) list the rule:: + testpmd> flow list 0 + + Verify there are one rule. + + 14) destory the rule:: + testpmd> flow destroy 0 rule 0 + + send packets match rule 0:: + sendp(Ether(src='99:99:99:99:99:99',dst='11:11:11:11:11:11')/IP(src=RandIP(),dst='2.2.2.5')/"Hello!0",iface="enp129s0f1") + + Verify all packets can not mark. + + 15) list the rule:: + testpmd> flow list 0 + + Verify there are no rule. + +2. complex test + + 1) create rules and destory the first:: + create three rules:: + testpmd> flow create 0 ingress pattern eth dst is 11:11:11:11:11:11 / ipv4 / end actions mark id 1 / rss / end + testpmd> flow create 0 ingress pattern eth dst is 22:22:22:22:22:22 / ipv4 / end actions mark id 2 / rss / end + testpmd> flow create 0 ingress pattern eth dst is 33:33:33:33:33:33 / ipv4 / end actions mark id 3 / rss / end + + list the rules:: + testpmd> flow list 0 + + Verify there are three rules. + + send packets:: + sendp(Ether(dst='11:11:11:11:11:11')/IP(src=RandIP(),dst='2.2.2.5')/"Hello!0",iface="enp129s0f1") + sendp(Ether(dst='22:22:22:22:22:22')/IP(src=RandIP(),dst='2.2.2.5')/"Hello!0",iface="enp129s0f1") + sendp(Ether(dst='33:33:33:33:33:33')/IP(src=RandIP(),dst='2.2.2.5')/"Hello!0",iface="enp129s0f1") + + Verify all packets can rss and mark. + + destory the first rule:: + testpmd> flow destroy 0 rule 0 + + list the rules:: + testpmd> flow list 0 + + Verify there are rule 1 and rule 2. + + send packets match rule 0:: + sendp(Ether(dst='11:11:11:11:11:11')/IP(src=RandIP(),dst='2.2.2.5')/"Hello!0",iface="enp129s0f1") + + Verify all packets can not mark. + + send packets match rule 1 and rule 2:: + sendp(Ether(dst='22:22:22:22:22:22')/IP(src=RandIP(),dst='2.2.2.5')/"Hello!0",iface="enp129s0f1") + sendp(Ether(dst='33:33:33:33:33:33')/IP(src=RandIP(),dst='2.2.2.5')/"Hello!0",iface="enp129s0f1") + + Verify all packets can rss and mark. + + flush rules:: + testpmd> flow flush 0 + + send packets match rule 0, rule 1 and rule 2:: + sendp(Ether(dst='11:11:11:11:11:11')/IP(src=RandIP(),dst='2.2.2.5')/"Hello!0",iface="enp129s0f1") + sendp(Ether(dst='22:22:22:22:22:22')/IP(src=RandIP(),dst='2.2.2.5')/"Hello!0",iface="enp129s0f1") + sendp(Ether(dst='33:33:33:33:33:33')/IP(src=RandIP(),dst='2.2.2.5')/"Hello!0",iface="enp129s0f1") + + Verify all packets can not mark. + + 2) create rules and destory the second:: + create three rules:: + testpmd> flow create 0 ingress pattern eth dst is 11:11:11:11:11:11 / ipv4 / end actions mark id 1 / rss / end + testpmd> flow create 0 ingress pattern eth dst is 22:22:22:22:22:22 / ipv4 / end actions mark id 2 / rss / end + testpmd> flow create 0 ingress pattern eth dst is 33:33:33:33:33:33 / ipv4 / end actions mark id 3 / rss / end + + list the rules:: + testpmd> flow list 0 + + Verify there are three rules. + + destory the second rule:: + testpmd> flow destroy 0 rule 1 + + list the rules:: + testpmd> flow list 0 + + Verify there are rule 0 and rule 2. + + send packets match rule 1:: + sendp(Ether(dst='22:22:22:22:22:22')/IP(src=RandIP(),dst='2.2.2.5')/"Hello!0",iface="enp129s0f1") + + Verify all packets can not mark. + + send packets match rule 0 and rule 2:: + sendp(Ether(dst='11:11:11:11:11:11')/IP(src=RandIP(),dst='2.2.2.5')/"Hello!0",iface="enp129s0f1") + sendp(Ether(dst='33:33:33:33:33:33')/IP(src=RandIP(),dst='2.2.2.5')/"Hello!0",iface="enp129s0f1") + + Verify all packets can rss and mark. + + flush rules:: + testpmd> flow flush 0 + + 3) create rules and destory the third:: + create three rules:: + testpmd> flow create 0 ingress pattern eth dst is 11:11:11:11:11:11 / ipv4 / end actions mark id 1 / rss / end + testpmd> flow create 0 ingress pattern eth dst is 22:22:22:22:22:22 / ipv4 / end actions mark id 2 / rss / end + testpmd> flow create 0 ingress pattern eth dst is 33:33:33:33:33:33 / ipv4 / end actions mark id 3 / rss / end + + list the rules:: + testpmd> flow list 0 + + Verify there are three rules. + + destory the second rule:: + testpmd> flow destroy 0 rule 2 + + list the rules:: + testpmd> flow list 0 + + Verify there are rule 0 and rule 1. + + send packets match rule 2:: + sendp(Ether(dst='33:33:33:33:33:33')/IP(src=RandIP(),dst='2.2.2.5')/"Hello!0",iface="enp129s0f1") + + Verify all packets can not mark. + + send packets match rule 0 and rule 1:: + sendp(Ether(dst='11:11:11:11:11:11')/IP(src=RandIP(),dst='2.2.2.5')/"Hello!0",iface="enp129s0f1") + sendp(Ether(dst='22:22:22:22:22:22')/IP(src=RandIP(),dst='2.2.2.5')/"Hello!0",iface="enp129s0f1") + + Verify all packets can rss and mark. + +3. negative test + + 1) ip in command:: + creat rule:: + testpmd> flow create 0 ingress pattern eth dst is 11:11:11:11:11:11 / ipv4 dst is 1.1.1.1 / end actions mark id 2 / rss / end + Verify rule can not be created. + + 2) kinds rule conflict:: + creat rule:: + testpmd> flow create 0 ingress pattern eth dst is 11:11:11:11:11:11 / ipv4 / end actions mark id 3 / rss / end + testpmd> flow create 0 ingress pattern eth src is 99:99:99:99:99:99 / ipv4 / end actions mark id 1 / rss / end + Verify second rule can not be created. + + flush rules:: + testpmd> flow flush 0 + + creat rule:: + testpmd> flow create 0 ingress pattern eth src is 99:99:99:99:99:99 / ipv4 / end actions mark id 1 / rss / end + testpmd> flow create 0 ingress pattern eth src is 99:99:99:99:99:99 dst is 11:11:11:11:11:11 / ipv4 / end actions mark id 1 / rss / end + Verify second rule can not be created. + + flush rules:: + testpmd> flow flush 0 + + creat rule:: + testpmd> flow create 0 ingress pattern eth src is 99:99:99:99:99:99 dst is 11:11:11:11:11:11 / ipv4 / end actions mark id 1 / rss / end + testpmd> flow create 0 ingress pattern eth dst is 11:11:11:11:11:11 / ipv4 / end actions mark id 3 / rss / end + Verify second rule can not be created. -- 2.17.1