From patchwork Fri Nov 20 10:45:51 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Sun, QinX" X-Patchwork-Id: 84395 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5509AA04DD; Fri, 20 Nov 2020 03:10:22 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 42436C8A8; Fri, 20 Nov 2020 03:10:21 +0100 (CET) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 4F254C884 for ; Fri, 20 Nov 2020 03:10:18 +0100 (CET) IronPort-SDR: HqIaUUzyjJrFM7wtpRAAwKiwiNB2hKnjihZHMsnwIX+hZRIjI3n2S/3mA0QjGWiMf654qRnTK7 rrLR0En+sLJQ== X-IronPort-AV: E=McAfee;i="6000,8403,9810"; a="170618881" X-IronPort-AV: E=Sophos;i="5.78,354,1599548400"; d="scan'208";a="170618881" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Nov 2020 18:10:18 -0800 IronPort-SDR: 5070Vu+Sl6D6eysW1Q4I1bO6ziO4x/o/SE2WQNvyl2JJuAzNmOfCmhnmn3xu6oQX0yvbPCt4So wyJa6NuqU5bw== X-IronPort-AV: E=Sophos;i="5.78,354,1599548400"; d="scan'208";a="535003873" Received: from unknown (HELO localhost.localdomain) ([10.240.183.105]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Nov 2020 18:10:16 -0800 From: sunqin To: dts@dpdk.org Cc: sunqin Date: Fri, 20 Nov 2020 10:45:51 +0000 Message-Id: <20201120104556.27730-2-qinx.sun@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201120104556.27730-1-qinx.sun@intel.com> References: <20201120104556.27730-1-qinx.sun@intel.com> Subject: [dts] [PATCH V1 1/6] tests/iavf_fdir remove 6 cases 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" Remove 6 cases: test_maxnum_14336rules_1vf test_maxnum_14336rules_2vf test_maxnum_15360rules_1pf_2vf test_maxnum_15360rules_1pf_0_rules_vf test_stress_add_delete_rules_1vf test_stress_add_delete_rules_2vf The 6 cases have been moved to 'cvl_limit_value_test' suite Signed-off-by: sunqin --- tests/TestSuite_iavf_fdir.py | 393 ----------------------------------- 1 file changed, 393 deletions(-) diff --git a/tests/TestSuite_iavf_fdir.py b/tests/TestSuite_iavf_fdir.py index 7ee6f4a2..e53f55e8 100644 --- a/tests/TestSuite_iavf_fdir.py +++ b/tests/TestSuite_iavf_fdir.py @@ -2989,328 +2989,6 @@ class TestIAVFFdir(TestCase): self.dut.close_session(self.session_secondary) self.dut.close_session(self.session_third) - def test_maxnum_14336rules_1vf(self): - """ - vfs share 14336 rules table - """ - self.dut.kill_all() - src_file = 'create_14336_rules' - flows=open(self.src_file_dir + src_file,mode='w') - count=0 - for i in range(56): - for j in range(256): - flows.write('flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.%d.%d / end actions queue index 5 / mark / end \n'%(i,j)) - count=count+1 - flows.close() - self.verify(count == 14336, "failed to create 14336 fdir rules on vf.") - self.dut.session.copy_file_to(self.src_file_dir + src_file, self.dut_file_dir) - - eal_param = "-c f -n 6 -w %s -w %s" % (self.sriov_vfs_pf0[0].pci,self.sriov_vfs_pf0[1].pci) - command = self.path + eal_param + " -- -i --rxq=%s --txq=%s" % (self.cvlq_num, self.cvlq_num) + " --cmdline-file=%s" % self.dut_file_dir + src_file - self.dut.send_expect(command, "testpmd> ", 300) - self.config_testpmd() - - # can't create more than 14336 rules on vf0 - rule_14336_vf0 = "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.56.0 / end actions queue index 5 / mark / end" - self.create_fdir_rule(rule_14336_vf0, check_stats=False) - #check there are 14336 rules created. - out = self.check_rule_number(port_id=0, num=14336) - self.verify("14336" not in out, "more than 14336 rules can be created on 1vf") - - # can't create rule on vf1 - rule_0_vf1 = "flow create 1 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.56.0 / end actions queue index 5 / mark / end" - self.create_fdir_rule(rule_0_vf1, check_stats=False) - self.check_fdir_rule(port_id=1, stats=False) - - pkt_0 = 'Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.0")/Raw("x" * 80)' - pkt_14335 = 'Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.55.255")/Raw("x" * 80)' - pkt_14336 = 'Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.56.0")/Raw("x" * 80)' - - # check packet match rule 0 and rule 14335 can be redirected to expected queue - out_0 = self.send_pkts_getouput(pkts=pkt_0, pf_id=0) - rfc.check_iavf_fdir_mark(out_0, pkt_num=1, check_param={"port_id": 0, "mark_id": 0, "queue": 5}, stats=True) - out_14335 = self.send_pkts_getouput(pkts=pkt_14335, pf_id=0) - rfc.check_iavf_fdir_mark(out_14335, pkt_num=1, check_param={"port_id": 0, "mark_id": 0, "queue": 5}, stats=True) - # check packet match rule 14336 can't be redirected to expected queue. - out_14336 = self.send_pkts_getouput(pkts=pkt_14336, pf_id=0) - rfc.check_iavf_fdir_mark(out_14336, pkt_num=1, check_param={"port_id": 0, "queue": 5}, stats=False) - - # delete one rule of vf0 - self.dut.send_expect("flow destroy 0 rule 0", "testpmd> ", timeout=200) - self.create_fdir_rule(rule_0_vf1, check_stats=True) - pkt_0_vf1 = 'Ether(dst="00:11:22:33:44:66")/IP(src="192.168.0.20",dst="192.168.56.0")/Raw("x" * 80)' - out_0_vf1 = self.send_pkts_getouput(pkts=pkt_0_vf1, pf_id=0) - rfc.check_iavf_fdir_mark(out_0_vf1, pkt_num=1, check_param={"port_id": 1, "mark_id": 0, "queue": 5}, stats=True) - - # flush all the rules - self.dut.send_expect("flow flush 0", "testpmd> ", timeout=200) - self.check_fdir_rule(port_id=0, stats=False) - out_0 = self.send_pkts_getouput(pkts=pkt_0, pf_id=0) - out_14335 = self.send_pkts_getouput(pkts=pkt_14335, pf_id=0) - rfc.check_iavf_fdir_mark(out_0, pkt_num=1, check_param={"port_id": 0, "mark_id": 0, "queue": 5}, stats=False) - rfc.check_iavf_fdir_mark(out_14335, pkt_num=1, check_param={"port_id": 0, "mark_id": 0, "queue": 5}, stats=False) - - self.create_fdir_rule(rule_14336_vf0, check_stats=True) - out_14336 = self.send_pkts_getouput(pkts=pkt_14336, pf_id=0) - rfc.check_iavf_fdir_mark(out_14336, pkt_num=1, check_param={"port_id": 0, "mark_id": 0, "queue": 5}, stats=True) - - def test_maxnum_14336rules_2vf(self): - """ - vfs share 14336 rules table - """ - self.dut.kill_all() - self.session_secondary = self.dut.new_session() - src_file = 'create_14336_rules_2vf' - flows=open(self.src_file_dir + src_file,mode='w') - flows.write('flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.0 / end actions queue index 5 / mark / end \n') - count=1 - for i in range(55): - for j in range(256): - flows.write('flow create 1 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.%d.%d / end actions queue index 5 / mark / end \n'%(i,j)) - count=count+1 - for j in range(255): - flows.write('flow create 1 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.55.%d / end actions queue index 5 / mark / end \n' % j) - count=count+1 - flows.close() - self.verify(count == 14336, "failed to create 14336 fdir rules on 2 vfs.") - self.dut.session.copy_file_to(self.src_file_dir + src_file, self.dut_file_dir) - - eal_param = "-c f -n 6 -w %s -w %s" % (self.sriov_vfs_pf0[0].pci,self.sriov_vfs_pf1[0].pci) - command = self.path + eal_param + " -- -i --rxq=%s --txq=%s" % (self.cvlq_num, self.cvlq_num) + " --cmdline-file=%s" % self.dut_file_dir + src_file - self.dut.send_expect(command, "testpmd> ", 300) - - self.config_testpmd() - self.check_fdir_rule(port_id=0, rule_list=['0']) - - # can't create more than 14336 rules on 2vf - rule_14335_vf1 = "flow create 1 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.56.0 / end actions queue index 5 / mark / end" - self.create_fdir_rule(rule_14335_vf1, check_stats=False) - #check there are 14336 rules created. - out = self.check_rule_number(port_id=1, num=14335) - self.verify("14335" not in out, "more than 14336 rules are created on 2vf") - - # can't create new rule on vf0 - rule_1_vf0 = "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.56.0 / end actions queue index 5 / mark / end" - self.create_fdir_rule(rule_1_vf0, check_stats=False) - self.check_rule_number(port_id=0, num=1) - - pkt_0 = 'Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.0")/Raw("x" * 80)' - pkt_1 = 'Ether(dst="00:11:22:33:44:77")/IP(src="192.168.0.20",dst="192.168.0.0")/Raw("x" * 80)' - pkt_14335 = 'Ether(dst="00:11:22:33:44:77")/IP(src="192.168.0.20",dst="192.168.55.254")/Raw("x" * 80)' - pkt_14336 = 'Ether(dst="00:11:22:33:44:77")/IP(src="192.168.0.20",dst="192.168.56.0")/Raw("x" * 80)' - - self.session_secondary.send_expect("ifconfig %s up" % self.pf0_intf, "# ", 15) - self.session_secondary.send_expect("ifconfig %s up" % self.pf1_intf, "# ", 15) - time.sleep(1) - - # check packet match rule 0 and rule 14335 can be redirected to expected queue - out_0 = self.send_pkts_getouput(pkts=pkt_0, pf_id=0) - rfc.check_iavf_fdir_mark(out_0, pkt_num=1, check_param={"port_id": 0, "mark_id": 0, "queue": 5}, stats=True) - out_1 = self.send_pkts_getouput(pkts=pkt_1, pf_id=1) - rfc.check_iavf_fdir_mark(out_1, pkt_num=1, check_param={"port_id": 1, "mark_id": 0, "queue": 5}, stats=True) - - out_14335 = self.send_pkts_getouput(pkts=pkt_14335, pf_id=1) - rfc.check_iavf_fdir_mark(out_14335, pkt_num=1, check_param={"port_id": 1, "mark_id": 0, "queue": 5}, stats=True) - # check packet match rule 14336 can't be redirected to expected queue. - out_14336 = self.send_pkts_getouput(pkts=pkt_14336, pf_id=1) - rfc.check_iavf_fdir_mark(out_14336, pkt_num=1, check_param={"port_id": 1, "queue": 5}, stats=False) - - # destroy rule 0 on vf0, then create a new rule on vf1 successfully. - self.dut.send_expect("flow flush 0", "testpmd> ") - self.create_fdir_rule(rule_14335_vf1, check_stats=True) - out_14336 = self.send_pkts_getouput(pkts=pkt_14336, pf_id=1) - rfc.check_iavf_fdir_mark(out_14336, pkt_num=1, check_param={"port_id": 1, "mark_id": 0, "queue": 5}, stats=True) - - self.dut.send_expect("flow flush 1", "testpmd> ", timeout=300) - - self.check_fdir_rule(port_id=0, stats=False) - self.check_fdir_rule(port_id=1, stats=False) - - out_0 = self.send_pkts_getouput(pkts=pkt_0, pf_id=0) - out_1 = self.send_pkts_getouput(pkts=pkt_1, pf_id=1) - out_14335 = self.send_pkts_getouput(pkts=pkt_14335, pf_id=1) - rfc.check_iavf_fdir_mark(out_0, pkt_num=1, check_param={"port_id": 0, "mark_id": 0, "queue": 5}, stats=False) - rfc.check_iavf_fdir_mark(out_1, pkt_num=1, check_param={"port_id": 1, "mark_id": 0, "queue": 5}, stats=False) - rfc.check_iavf_fdir_mark(out_14335, pkt_num=1, check_param={"port_id": 1, "mark_id": 0, "queue": 5}, stats=False) - - self.dut.close_session(self.session_secondary) - - def test_maxnum_15360rules_1pf_2vf(self): - """ - 2*100G NIC, each pf can create 1024 rules at least, vfs share 14336 rules table - 4*25G NIC, each pf can create 512 rules at least, vfs share 14336 rules table - so if 2*25G NIC, max number is 14848 on 1pf and 2vfs. - """ - self.dut.kill_all() - self.session_secondary = self.dut.new_session() - - #create 1025 rules on pf1 - src_file = 'create_1025_kernel_rules' - flows=open(self.src_file_dir + src_file,mode='w') - count=0 - if self.nic in ["columbiaville_100g"]: - for i in range(4): - for j in range(256): - flows.write('ethtool -N %s flow-type tcp4 src-ip 192.168.%d.%d dst-ip 192.168.100.2 src-port 32 dst-port 33 action 8 \n' % (self.pf1_intf,i,j)) - count=count+1 - flows.write('ethtool -N %s flow-type tcp4 src-ip 192.168.100.0 dst-ip 192.168.100.2 src-port 32 dst-port 33 action 8 \n' % self.pf1_intf) - count=count+1 - flows.close() - self.verify(count == 1025, "failed to create 1025 fdir rules on pf.") - elif self.nic in ["columbiaville_25g"]: - for i in range(2): - for j in range(256): - flows.write('ethtool -N %s flow-type tcp4 src-ip 192.168.%d.%d dst-ip 192.168.100.2 src-port 32 dst-port 33 action 8 \n' % (self.pf1_intf,i,j)) - count=count+1 - flows.write('ethtool -N %s flow-type tcp4 src-ip 192.168.100.0 dst-ip 192.168.100.2 src-port 32 dst-port 33 action 8 \n' % self.pf1_intf) - count=count+1 - flows.close() - self.verify(count == 513, "failed to create 1025 fdir rules on pf.") - self.dut.session.copy_file_to(self.src_file_dir + src_file, self.dut_file_dir) - # create 1025 rules on pf1 - fkr = open(self.src_file_dir + src_file, "r+") - kernel_rules = fkr.read() - fkr.close() - self.dut.send_expect(kernel_rules, "# ") - time.sleep(15) - - #create 1 rule on vf00, and 14334 rules on vf01 - src_file_vf = 'create_14335_rules_on_2vfs' - flows = open(self.src_file_dir + src_file_vf, mode='w') - flows.write('flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.0 / end actions queue index 5 / mark / end \n') - count=1 - for i in range(55): - for j in range(256): - flows.write('flow create 1 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.%d.%d / end actions queue index 5 / mark / end \n'%(i,j)) - count=count+1 - for j in range(254): - flows.write('flow create 1 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.55.%d / end actions queue index 5 / mark / end \n' % j) - count=count+1 - flows.close() - self.verify(count == 14335, "failed to create 14335 fdir rules on vfs.") - self.dut.session.copy_file_to(self.src_file_dir + src_file_vf, self.dut_file_dir) - - # start testpmd with creating rules in commandline - eal_param = "-c f -n 6 -w %s -w %s" % (self.sriov_vfs_pf0[0].pci,self.sriov_vfs_pf0[1].pci) - command = self.path + eal_param + " -- -i --rxq=%s --txq=%s" % (self.cvlq_num, self.cvlq_num) + " --cmdline-file=%s" % self.dut_file_dir + src_file_vf - fdw = open("15360_rules_vf_result.txt", "w") - fdw.write(self.dut.send_expect(command, "testpmd> ", 360)) - fdw.close() - - self.config_testpmd() - # check there is 1 rule created on vf00 - self.check_fdir_rule(port_id=0, rule_list=['0']) - - # can't create more than 14335 rules on 2vf, the rule index is from 0 - rule_14334_vf1 = "flow create 1 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.56.0 / end actions queue index 5 / mark / end" - pkt_14334 = 'Ether(dst="00:11:22:33:44:66")/IP(src="192.168.0.20",dst="192.168.56.0")/Raw("x" * 80)' - self.create_fdir_rule(rule_14334_vf1, check_stats=False) - - #check there are 14334 rules created on vf01 - out = self.check_rule_number(port_id=1, num=14334) - self.verify("14334" not in out, "more than 15360 rules are created on 2vf") - - # delete a rule on pf0 - self.session_secondary.send_expect("ethtool -N %s delete 14847" % self.pf1_intf, "# ") - - # then can create one more rule on vf01 - self.create_fdir_rule(rule_14334_vf1, check_stats=True) - out_14334 = self.send_pkts_getouput(pkts=pkt_14334, pf_id=0) - rfc.check_iavf_fdir_mark(out_14334, pkt_num=1, check_param={"port_id": 1, "mark_id": 0, "queue": 5}, stats=True) - - self.dut.send_expect("flow flush 0", "testpmd> ", timeout=200) - self.dut.send_expect("flow flush 1", "testpmd> ", timeout=200) - self.check_fdir_rule(port_id=0, stats=False) - self.check_fdir_rule(port_id=1, stats=False) - out_14334 = self.send_pkts_getouput(pkts=pkt_14334, pf_id=0) - rfc.check_iavf_fdir_mark(out_14334, pkt_num=1, check_param={"port_id": 1, "mark_id": 0, "queue": 5}, stats=False) - - self.dut.send_expect("quit", "# ") - self.dut.close_session(self.session_secondary) - self.re_load_ice_driver() - self.setup_2pf_4vf_env() - - def test_maxnum_15360rules_1pf_0_rules_vf(self): - """ - 2*100G NIC, each pf can create 1024 rules at least, vfs share 14336 rules table - 4*25G NIC, each pf can create 512 rules at least, vfs share 14336 rules table - so if 2*25G NIC, max number is 14848 on 1pf and vfs. - create 15360/14848 rules on pf1, check failed to create rule on vf00 and vf10 - """ - self.dut.kill_all() - self.session_secondary = self.dut.new_session() - - #create 15360 rules on pf1 - src_file = 'create_15360_kernel_rules' - flows=open(self.src_file_dir + src_file,mode='w') - count=0 - if self.nic in ["columbiaville_100g"]: - for i in range(60): - for j in range(256): - flows.write('ethtool -N %s flow-type tcp4 src-ip 192.168.%d.%d dst-ip 192.168.100.2 src-port 32 dst-port 33 action 8 \n' % (self.pf1_intf,i,j)) - count=count+1 - flows.close() - self.verify(count == 15360, "failed to create 15360 fdir rules on pf.") - elif self.nic in ["columbiaville_25g"]: - for i in range(58): - for j in range(256): - flows.write('ethtool -N %s flow-type tcp4 src-ip 192.168.%d.%d dst-ip 192.168.100.2 src-port 32 dst-port 33 action 8 \n' % (self.pf1_intf,i,j)) - count=count+1 - flows.close() - self.verify(count == 14848, "failed to create 14848 fdir rules on pf.") - self.dut.session.copy_file_to(self.src_file_dir + src_file, self.dut_file_dir) - # create 15360 rules on pf1 - fkr = open(self.src_file_dir + src_file, "r+") - kernel_rules = fkr.read() - fkr.close() - self.dut.send_expect(kernel_rules, "# ") - time.sleep(200) - # failed to create 1 more rule on pf1 - self.dut.send_expect("ethtool -N %s flow-type tcp4 src-ip 192.168.100.0 dst-ip 192.168.100.2 src-port 32 dst-port 33 action 8" % self.pf1_intf, "Cannot insert RX class rule: No space left on device") - # start testpmd with creating rules in commandline - eal_param = "-c f -n 6 -w %s -w %s" % (self.sriov_vfs_pf0[0].pci,self.sriov_vfs_pf1[0].pci) - command = self.path + eal_param + " -- -i --rxq=%s --txq=%s" % (self.cvlq_num, self.cvlq_num) - self.dut.send_expect(command, "testpmd> ", 20) - - self.config_testpmd() - rule_0_vf00 = "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.56.0 / end actions queue index 5 / mark / end" - pkt_0_vf00 = 'Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.56.0")/Raw("x" * 80)' - rule_0_vf10 = "flow create 1 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.56.0 / end actions queue index 5 / mark / end" - pkt_0_vf10 = 'Ether(dst="00:11:22:33:44:77")/IP(src="192.168.0.20",dst="192.168.56.0")/Raw("x" * 80)' - - #failed to create rule on vf00 and vf10 - self.create_fdir_rule(rule_0_vf00, check_stats=False) - self.create_fdir_rule(rule_0_vf10, check_stats=False) - self.check_rule_number(port_id=0, num=0) - self.check_rule_number(port_id=1, num=0) - - # delete a rule on pf1 - self.session_secondary.send_expect("ethtool -N %s delete 14847" % self.pf1_intf, "# ") - - # then can create one rule on vf00 - self.create_fdir_rule(rule_0_vf00, check_stats=True) - self.create_fdir_rule(rule_0_vf10, check_stats=False) - self.check_rule_number(port_id=0, num=1) - self.check_rule_number(port_id=1, num=0) - - # delete a rule on pf1 - self.session_secondary.send_expect("ethtool -N %s delete 14846" % self.pf1_intf, "# ") - - # then can create one rule on vf10 - self.create_fdir_rule(rule_0_vf10, check_stats=True) - self.check_rule_number(port_id=1, num=1) - - out_0_vf00 = self.send_pkts_getouput(pkts=pkt_0_vf00, pf_id=0) - rfc.check_iavf_fdir_mark(out_0_vf00, pkt_num=1, check_param={"port_id": 0, "mark_id": 0, "queue": 5}, stats=True) - - out_0_vf10 = self.send_pkts_getouput(pkts=pkt_0_vf10, pf_id=1) - rfc.check_iavf_fdir_mark(out_0_vf10, pkt_num=1, check_param={"port_id": 1, "mark_id": 0, "queue": 5}, stats=True) - - self.dut.send_expect("quit", "# ") - self.dut.close_session(self.session_secondary) - self.re_load_ice_driver() - self.setup_2pf_4vf_env() - def test_maxnum_128_profiles(self): """ There are 128 profiles in total. @@ -3390,77 +3068,6 @@ class TestIAVFFdir(TestCase): out = self.send_pkts_getouput(pkts=pkt) rfc.check_iavf_fdir_mark(out, pkt_num=1, check_param={"port_id": 0, "mark_id": 0, "queue": 1}, stats=True) - def test_stress_add_delete_rules_1vf(self): - """ - add/delete rules 14336 times on 1 vf - """ - rules = [ - "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions queue index 6 / mark / end", - "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions rss queues 2 3 end / mark id 1 / end"] - pkts = [ - 'Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21")/UDP(sport=22,dport=23)/Raw("x" * 80)', - 'Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21")/TCP(sport=22,dport=23)/Raw("x" * 80)'] - self.dut.kill_all() - src_file = 'add_delete_rules_1vf' - flows=open(self.src_file_dir + src_file,mode='w') - count=0 - for i in range(14336): - flows.write('%s \n' % rules[0]) - flows.write('%s \n' % rules[1]) - flows.write('flow flush 0\n') - count=count+1 - flows.close() - self.verify(count == 14336, "failed to add/delete 14336 times of fdir rules on vf.") - self.dut.session.copy_file_to(self.src_file_dir + src_file, self.dut_file_dir) - - eal_param = "-c f -n 6 -w %s -w %s" % (self.sriov_vfs_pf0[0].pci,self.sriov_vfs_pf0[1].pci) - command = self.path + eal_param + " -- -i --rxq=%s --txq=%s" % (self.cvlq_num, self.cvlq_num) + " --cmdline-file=%s" % self.dut_file_dir + src_file - self.dut.send_expect(command, "testpmd> ", 900) - self.config_testpmd() - self.check_fdir_rule(port_id=0, stats=False) - self.create_fdir_rule(rules, check_stats=True) - out_0 = self.send_pkts_getouput(pkts=pkts[0]) - rfc.check_iavf_fdir_mark(out_0, pkt_num=1, check_param={"port_id": 0, "mark_id": 0, "queue": 6}, stats=True) - out_1 = self.send_pkts_getouput(pkts=pkts[1]) - rfc.check_iavf_fdir_mark(out_1, pkt_num=1, check_param={"port_id": 0, "mark_id": 1, "queue": [2, 3]}, stats=True) - - def test_stress_add_delete_rules_2vf(self): - """ - add/delete rules 14336 times on 2 vfs - """ - rules = [ - "flow create 0 ingress pattern eth / ipv4 src is 192.168.56.0 dst is 192.1.0.0 tos is 4 / tcp src is 22 dst is 23 / end actions queue index 5 / end", - "flow create 1 ingress pattern eth / ipv4 src is 192.168.56.0 dst is 192.1.0.0 tos is 4 / tcp src is 22 dst is 23 / end actions queue index 5 / end"] - pkts = [ - 'Ether(dst="00:11:22:33:44:55")/IP(src="192.168.56.0",dst="192.1.0.0", tos=4)/TCP(sport=22,dport=23)/Raw("x" * 80)', - 'Ether(dst="00:11:22:33:44:66")/IP(src="192.168.56.0",dst="192.1.0.0", tos=4)/TCP(sport=22,dport=23)/Raw("x" * 80)'] - self.dut.kill_all() - src_file = 'add_delete_rules_2vfs' - flows=open(self.src_file_dir + src_file,mode='w') - count=0 - for i in range(14336): - flows.write('%s \n' % rules[0]) - flows.write('%s \n' % rules[1]) - flows.write('flow flush 0\n') - flows.write('flow flush 1\n') - count=count+1 - flows.close() - self.verify(count == 14336, "failed to add/delete 14336 times of fdir rules on 2 vfs.") - self.dut.session.copy_file_to(self.src_file_dir + src_file, self.dut_file_dir) - - eal_param = "-c f -n 6 -w %s -w %s" % (self.sriov_vfs_pf0[0].pci,self.sriov_vfs_pf0[1].pci) - command = self.path + eal_param + " -- -i --rxq=%s --txq=%s" % (self.cvlq_num, self.cvlq_num) + " --cmdline-file=%s" % self.dut_file_dir + src_file - self.dut.send_expect(command, "testpmd> ", 900) - self.config_testpmd() - self.check_fdir_rule(port_id=0, stats=False) - self.check_fdir_rule(port_id=1, stats=False) - - self.create_fdir_rule(rules, check_stats=True) - out_0 = self.send_pkts_getouput(pkts=pkts[0], pf_id=0) - rfc.check_iavf_fdir_mark(out_0, pkt_num=1, check_param={"port_id": 0, "queue": 5}, stats=True) - out_1 = self.send_pkts_getouput(pkts=pkts[1], pf_id=0) - rfc.check_iavf_fdir_mark(out_1, pkt_num=1, check_param={"port_id": 1, "queue": 5}, stats=True) - def test_stress_delete_rules(self): """ delete 1st/2nd/last rule won't affect other rules From patchwork Fri Nov 20 10:45:52 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Sun, QinX" X-Patchwork-Id: 84396 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 79B3AA04DD; Fri, 20 Nov 2020 03:10:25 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 71B9CC8B4; Fri, 20 Nov 2020 03:10:24 +0100 (CET) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id D1306C8B4 for ; Fri, 20 Nov 2020 03:10:22 +0100 (CET) IronPort-SDR: eE6KQMI1jQnqzJyUCoUPCldJ/2h3zIiMuYqIX3B37tl4uFhyL62Csqwzr5msnF+iZHXz7ljVvO P3HBfVP80pfw== X-IronPort-AV: E=McAfee;i="6000,8403,9810"; a="170618890" X-IronPort-AV: E=Sophos;i="5.78,354,1599548400"; d="scan'208";a="170618890" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Nov 2020 18:10:22 -0800 IronPort-SDR: qSDJI9mT9uYeNDioPVfeQ0AHzlEXgDAZVZul6kbUq09V2VBetGmXjAUQAFfR/HOQGJKm8dXPYL 19H+upFxH2sg== X-IronPort-AV: E=Sophos;i="5.78,354,1599548400"; d="scan'208";a="535003882" Received: from unknown (HELO localhost.localdomain) ([10.240.183.105]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Nov 2020 18:10:21 -0800 From: sunqin To: dts@dpdk.org Cc: sunqin Date: Fri, 20 Nov 2020 10:45:52 +0000 Message-Id: <20201120104556.27730-3-qinx.sun@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201120104556.27730-1-qinx.sun@intel.com> References: <20201120104556.27730-1-qinx.sun@intel.com> Subject: [dts] [PATCH V1 2/6] test_plans/iavf_fdir remove 6 subcases 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" Remove 6 cases: test_maxnum_14336rules_1vf test_maxnum_14336rules_2vf test_maxnum_15360rules_1pf_2vf test_maxnum_15360rules_1pf_0_rules_vf test_stress_add_delete_rules_1vf test_stress_add_delete_rules_2vf The 6 cases have been moved to 'cvl_limit_value_test' suite Signed-off-by: sunqin --- test_plans/iavf_fdir_test_plan.rst | 304 +---------------------------- 1 file changed, 7 insertions(+), 297 deletions(-) diff --git a/test_plans/iavf_fdir_test_plan.rst b/test_plans/iavf_fdir_test_plan.rst index ed71d589..64f6dae9 100644 --- a/test_plans/iavf_fdir_test_plan.rst +++ b/test_plans/iavf_fdir_test_plan.rst @@ -3742,220 +3742,7 @@ All the max number cases are designed based on 2*100G NIC. If the hardware is 4*25G NIC, the guaranteed rule number of PF is 512. So in subcase 3 and subcase 4, there can be created at most 14848 rules on 1pf and 2vfs. -Subcase 1: 14336 rules on 1 vf ------------------------------- - -1. create 14336 rules on vf00:: - - flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.0 / end actions queue index 1 / mark / end - flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.1 / end actions queue index 1 / mark / end - ...... - flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.55.255 / end actions queue index 1 / mark / end - - all the rules are created successfully. - -2. create one more rule:: - - flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.56.0 / end actions queue index 1 / mark / end - - the rule failed to create. return the error message. - -3. check the rule list, there are 14336 rules listed. - -4. send matched packets for rule 0 and rule 14335:: - - sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.0")/Raw('x' * 80)],iface="enp134s0f1") - sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.55.255")/Raw('x' * 80)],iface="enp134s0f1") - - check all packets are redirected to expected queue with FDIR matched ID=0x0 - -5. create a rule on vf01, it failed, - check the error message, the rule number has expired the max rule number. - -6. create a rule on vf10, it failed, - check the error message, the rule number has expired the max rule number. - -7. flush all the rules, check the rule list, - there is no rule listed. - -8. verify matched packets for rule 0 and rule 14335 received without FDIR matched ID. - -Subcase 2: 14336 rules on 2 vfs of 2pfs ---------------------------------------- - -1. start testpmd on vf00:: - - ./testpmd -c 0xf -n 6 -w 86:01.0 --file-prefix=vf00 -- -i --rxq=4 --txq=4 - - create 1 rule on vf00:: - - flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.0 / end actions queue index 1 / mark / end - - created successfully, check the rule is listed. - -2. start testpmd on vf10:: - - ./testpmd -c 0xf0 -n 6 -w 86:0a.0 --file-prefix=vf10 -- -i --rxq=4 --txq=4 - - create 14336 rules on vf10:: - - flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.0 / end actions queue index 1 / mark / end - flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.1 / end actions queue index 1 / mark / end - ...... - flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.55.255 / end actions queue index 1 / mark / end - - all the rules except the last one are created successfully. - check the rule list, there listed 14335 rules. - -3. send matched packet to vf00 and matched packet for rule 14334 to vf10, - check all packets are redirected to expected queue with FDIR matched ID=0x0 - -4. flush all the rules, check the rule list, - there is no rule listed. - -5. verify matched packet received without FDIR matched ID. - -Subcase 3: 1025 rules on 1pf and 14335 rules on 2vfs ----------------------------------------------------- -each pf can create 1024 rules at least in 2 ports card. -each pf can create 512 rules at least in 4 ports card. -there are 14k rules shared by pfs and vfs. -so 1 pf and 2 vfs can create 15360 rules at most on 2 ports card. -1 pf and 2 vfs can create 14848 rules at most on 4 ports card. - -1. create 1025 rules on pf0:: - - ethtool -N enp134s0f0 flow-type tcp4 src-ip 192.168.0.0 dst-ip 192.168.100.2 src-port 32 dst-port 33 action 8 - ethtool -N enp134s0f0 flow-type tcp4 src-ip 192.168.0.1 dst-ip 192.168.100.2 src-port 32 dst-port 33 action 8 - ...... - ethtool -N enp134s0f0 flow-type tcp4 src-ip 192.168.3.255 dst-ip 192.168.100.2 src-port 32 dst-port 33 action 8 - ethtool -N enp134s0f0 flow-type tcp4 src-ip 192.168.4.0 dst-ip 192.168.100.2 src-port 32 dst-port 33 action 8 - - all the rules can be created successfully:: - - Added rule with ID - - List the rules on pf0:: - - ethtool -n enp134s0f0 - -2. start testpmd on vf00:: - - ./testpmd -c 0xf -n 6 -w 86:01.0 --file-prefix=vf00 -- -i --rxq=4 --txq=4 - - create 1 rule on vf00:: - - flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.0 / end actions queue index 1 / mark / end - - created successfully, check the rule is listed. - -2. start testpmd on vf10:: - - ./testpmd -c 0xf0 -n 6 -w 86:0a.0 --file-prefix=vf10 -- -i --rxq=4 --txq=4 - - create 14335 rules on vf10:: - - flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.0 / end actions queue index 1 / mark / end - flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.1 / end actions queue index 1 / mark / end - ...... - flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.55.254 / end actions queue index 1 / mark / end - - all the rules except the last one are created successfully. - check the rule list, there listed 14334 rules. - -3. send matched packet to vf00 and matched packet for rule 14333 to vf10, - check all packets are redirected to expected queue with FDIR matched ID=0x0 - -4. delete 1 rule on pf0:: - - ethtool -N enp134s0f0 delete - -5. create one more rule on vf10:: - - flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.55.254 / end actions queue index 1 / mark / end - - the rule can be created successfully. - -6. send matched packet to vf10, it can be redirected to queue 1 with FDIR matched ID=0x0. - -7. flush all the rules, check the rule list, - there is no rule listed. - -8. verify matched packet received without FDIR matched ID. - -Subcase 4: 15360 rules on 1pf and 0 rules on 2vfs -------------------------------------------------- -each pf can create 1024 rules at least in 2 ports card. -each pf can create 512 rules at least in 4 ports card. -there are 14k rules shared by pfs and vfs. -so 1 pf and 2 vfs can create 15360 rules at most on 2 ports card. -1 pf and 2 vfs can create 14848 rules at most on 4 ports card. -so if create 15360/14848 rules on 1 pf, there can't create rule on vf successfully. - -1. create 15360 rules on pf0:: - - ethtool -N enp134s0f0 flow-type tcp4 src-ip 192.168.0.0 dst-ip 192.168.100.2 src-port 32 dst-port 33 action 8 - ethtool -N enp134s0f0 flow-type tcp4 src-ip 192.168.0.1 dst-ip 192.168.100.2 src-port 32 dst-port 33 action 8 - ...... - ethtool -N enp134s0f0 flow-type tcp4 src-ip 192.168.57.255 dst-ip 192.168.100.2 src-port 32 dst-port 33 action 8 - - all the rules can be created successfully:: - - Added rule with ID - -2. failed to create one more rule on pf0:: - - ethtool -N enp134s0f0 flow-type tcp4 src-ip 192.168.58.0 dst-ip 192.168.100.2 src-port 32 dst-port 33 action 8 - -3. start testpmd on vf00 and vf10:: - - ./testpmd -c 0xf -n 6 -w 86:01.0 -w 86:11.0 --file-prefix=vf00 -- -i --rxq=4 --txq=4 - - create 1 rule on vf00:: - - flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.0 / end actions queue index 1 / mark / end - - failed to create the rule, check there is no rule listed. - - create 1 rule on vf10:: - - flow create 1 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.0 / end actions queue index 1 / mark / end - - failed to create the rule, check there is no rule listed. - -4. delete 1 rule on pf0:: - - ethtool -N enp134s0f0 delete - -5. create 1 rule on vf00:: - - flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.55.254 / end actions queue index 1 / mark / end - - the rule can be created successfully. - - create 1 rule on vf10:: - - flow create 1 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.0 / end actions queue index 1 / mark / end - - failed to create the rule, check there is no rule listed. - -6. send matched packet to vf00, it can be redirected to queue 1 with FDIR matched ID=0x0. - send matched packet to vf10, it is received without FDIR matched ID. - -7. delete 1 more rule on pf0:: - - ethtool -N enp134s0f0 delete - -8. create 1 rule on vf10:: - - flow create 1 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.0 / end actions queue index 1 / mark / end - - the rule can be created successfully. - -9. send matched packet to vf00, it can be redirected to queue 1 with FDIR matched ID=0x0. - send matched packet to vf10, it can be redirected to queue 1 with FDIR matched ID=0x0. - -Subcase 5: 128 profiles +Subcase 1: 128 profiles ----------------------- 1. create 16 vfs on pf0:: @@ -4061,84 +3848,7 @@ Subcase 1: port stop/port start 5. verify matched packet can be still redirected to queue 1 with FDIR matched ID=0x0. -Subcase 2: add/delete rules ---------------------------- - -1. create two rules:: - - flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions queue index 1 / mark id 0 / end - flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions rss queues 2 3 end / mark id 1 / end - - return the message:: - - Flow rule #0 created - Flow rule #1 created - - list the rules:: - - testpmd> flow list 0 - ID Group Prio Attr Rule - 0 0 0 i-- ETH IPV4 UDP => QUEUE MARK - 1 0 0 i-- ETH IPV4 TCP => RSS MARK - -2. delete the rules:: - - testpmd> flow flush 0 - -3. repeat the create and delete operations in step1-2 14336 times. - -4. create the two rules one more time, check the rules listed. - -5. send matched packet:: - - sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21")/UDP(sport=22,dport=23)/Raw('x' * 80)],iface="enp134s0f1") - sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21")/TCP(sport=22,dport=23)/Raw('x' * 80)],iface="enp134s0f1") - - check packet 1 is redirected to queue 1 with FDIR matched ID=0x0 - check packet 2 is redirected to queue 2 or queue 3 with FDIR matched ID=0x1 - -Subcase 3: add/delete rules on two VFs --------------------------------------- - -1. create a rule on each vf:: - - flow create 0 ingress pattern eth / ipv4 src is 192.168.0.0 dst is 192.1.0.0 tos is 4 / tcp src is 22 dst is 23 / end actions queue index 5 / end - flow create 1 ingress pattern eth / ipv4 src is 192.168.0.0 dst is 192.1.0.0 tos is 4 / tcp src is 22 dst is 23 / end actions queue index 5 / end - - return the message:: - - Flow rule #0 created - Flow rule #0 created - - list the rules:: - - testpmd> flow list 0 - ID Group Prio Attr Rule - 0 0 0 i-- ETH IPV4 TCP => QUEUE - testpmd> flow list 1 - ID Group Prio Attr Rule - 0 0 0 i-- ETH IPV4 TCP => QUEUE - -2. delete the rules:: - - flow destroy 0 rule 0 - flow destroy 1 rule 0 - -3. repeate the create and delete operations in step1-2 14336 times with different IP src address. - -4. create the rule on each vf one more time, check the rules listed:: - - flow create 0 ingress pattern eth / ipv4 src is 192.168.56.0 dst is 192.1.0.0 tos is 4 / tcp src is 22 dst is 23 / end actions queue index 5 / end - flow create 1 ingress pattern eth / ipv4 src is 192.168.56.0 dst is 192.1.0.0 tos is 4 / tcp src is 22 dst is 23 / end actions queue index 5 / end - -5. send matched packet:: - - sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.56.0",dst="192.1.0.0",tos=4)/TCP(sport=22,dport=23)/Raw('x' * 80)],iface="enp134s0f1") - sendp([Ether(dst="00:11:22:33:44:66")/IP(src="192.168.56.0",dst="192.1.0.0",tos=4)/TCP(sport=22,dport=23)/Raw('x' * 80)],iface="enp134s0f1") - - check the packet is redirected to queue 5 of two vfs. - -Subcase 4: delete rules +Subcase 2: delete rules ----------------------- 1. create 3 rules and destory the first rule:: @@ -4216,7 +3926,7 @@ Subcase 4: delete rules send packets match rule 0, rule 1 and rule 2, verify all packets are received without FDIR matched ID. -Subcase 5: VF port reset and create a new rule +Subcase 3: VF port reset and create a new rule ---------------------------------------------- 1. create a rule on vf00 and vf01:: @@ -4250,7 +3960,7 @@ Subcase 5: VF port reset and create a new rule 7. send matched packets, check them redirected to expected queue with FDIR matched ID. -Subcase 6: VF port reset and delete the rule +Subcase 4: VF port reset and delete the rule -------------------------------------------- 1. create a rule on vf00 and vf01:: @@ -4286,7 +3996,7 @@ Subcase 6: VF port reset and delete the rule 7. send matched packets, check them redirected to expected queue with FDIR matched ID. -Subcase 7: PF reset VF and create a new rule +Subcase 5: PF reset VF and create a new rule -------------------------------------------- 1. create a rule on vf00 and vf01:: @@ -4331,7 +4041,7 @@ Subcase 7: PF reset VF and create a new rule 8. send matched packets, check them redirected to expected queue with FDIR matched ID. -Subcase 8: PF reset VF and delete the rule +Subcase 6: PF reset VF and delete the rule ------------------------------------------ 1. create a rule on vf00 and vf01:: @@ -4374,7 +4084,7 @@ Subcase 8: PF reset VF and delete the rule 8. send matched packets, check them redirected to expected queue with FDIR matched ID. -Subcase 9: check profile delete +Subcase 7: check profile delete ------------------------------- 1. create ipv4-tcp and ipv6-udp rules:: From patchwork Fri Nov 20 10:45:53 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Sun, QinX" X-Patchwork-Id: 84397 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id B0F31A04DD; Fri, 20 Nov 2020 03:10:27 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id A6FF1C884; Fri, 20 Nov 2020 03:10:26 +0100 (CET) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 67304C8C6 for ; Fri, 20 Nov 2020 03:10:25 +0100 (CET) IronPort-SDR: ERicLlcoFt/HZ5gFWZlXyjf6IFUuZYv2KEHgI+5TWJJlhlWNGMDoGZ8xGC5y/hqSRckP2LpInw XgmCH3qGfDmQ== X-IronPort-AV: E=McAfee;i="6000,8403,9810"; a="170618893" X-IronPort-AV: E=Sophos;i="5.78,354,1599548400"; d="scan'208";a="170618893" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Nov 2020 18:10:25 -0800 IronPort-SDR: 0jasKwcDo9T+IoF2xAH1O+qwWLAMeuGXuEG/bHqNaD1J7mjrAXxkqP9AFIAGV/UgtfLR243OLw /jdBZ3rk6oYg== X-IronPort-AV: E=Sophos;i="5.78,354,1599548400"; d="scan'208";a="535003907" Received: from unknown (HELO localhost.localdomain) ([10.240.183.105]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Nov 2020 18:10:23 -0800 From: sunqin To: dts@dpdk.org Cc: sunqin Date: Fri, 20 Nov 2020 10:45:53 +0000 Message-Id: <20201120104556.27730-4-qinx.sun@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201120104556.27730-1-qinx.sun@intel.com> References: <20201120104556.27730-1-qinx.sun@intel.com> Subject: [dts] [PATCH V1 3/6] tests/cvl_fdir remove 1 case 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" Remove 1 case: test_add_delete_rules The case has been moved to 'cvl_limit_value_test' suite Signed-off-by: sunqin --- tests/TestSuite_cvl_fdir.py | 39 ------------------------------------- 1 file changed, 39 deletions(-) diff --git a/tests/TestSuite_cvl_fdir.py b/tests/TestSuite_cvl_fdir.py index 50a0236c..31bdfc7d 100644 --- a/tests/TestSuite_cvl_fdir.py +++ b/tests/TestSuite_cvl_fdir.py @@ -3018,45 +3018,6 @@ class TestCVLFdir(TestCase): out3 = self.send_pkts_getouput(pkts='Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.22",dst="192.168.0.23") / Raw("x" * 80)', port_id=0, count=1) rfc.check_mark(out3, pkt_num=1, check_param={"port_id": 0, "queue": 2, "mark_id": 1}, stats=True) - def test_add_delete_rules(self): - self.pmd_output.execute_cmd("stop") - self.dut.send_command("quit", timeout=2) - cmd_path = '/tmp/add_delete_rules' - cmds = [ - 'flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions queue index 1 / mark / end', - 'flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions rss queues 2 3 end / mark id 1 / end', - 'flow list 0', 'flow flush 0'] * 15360 - cmds_li = map(lambda x: x + os.linesep, cmds) - with open(cmd_path, 'w') as f: - f.writelines(cmds_li) - self.dut.session.copy_file_to(cmd_path, cmd_path) - try: - eal_param = self.dut.create_eal_parameters(cores="1S/4C/1T", ports=[self.pci0, self.pci1], socket=self.ports_socket) - param = " --log-level='ice,7' -- -i --portmask=%s --rxq=%d --txq=%d --port-topology=loop --cmdline-file=%s" % ( - self.portMask, 64, 64, cmd_path) - command_line = self.dut.apps_name['test-pmd'] + eal_param + param - out = self.dut.send_expect(command_line, 'testpmd>', timeout=600) - self.verify('Failed to create file' not in out, "create some rule failed: %s" % out) - self.config_testpmd() - self.pmd_output.execute_cmd('start') - rules = [ - 'flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions queue index 1 / mark / end', - 'flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions rss queues 2 3 end / mark id 1 / end'] - rule_li = self.create_fdir_rule(rule=rules, check_stats=True) - self.check_fdir_rule(port_id=0, stats=True, rule_list=rule_li) - pkts = [ - 'Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21")/UDP(sport=22,dport=23)/Raw("x" * 80)', - 'Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21")/TCP(sport=22,dport=23)/Raw("x" * 80)'] - out1 = self.send_pkts_getouput(pkts=pkts[0], port_id=0, count=1) - rfc.check_mark(out1, pkt_num=1, check_param={"port_id": 0, "queue": 1, "mark_id": 0}, stats=True) - out2 = self.send_pkts_getouput(pkts=pkts[1], port_id=0, count=1) - rfc.check_mark(out2, pkt_num=1, check_param={"port_id": 0, "queue": [2, 3], "mark_id": 1}, stats=True) - except Exception as e: - raise Exception(e) - finally: - self.dut.kill_all() - self.launch_testpmd_with_mark() - def test_delete_rules(self): rules = [ 'flow create 0 ingress pattern eth / ipv4 src is 192.168.56.0 dst is 192.1.0.0 tos is 4 / tcp src is 22 dst is 23 / end actions queue index 1 / mark / end', From patchwork Fri Nov 20 10:45:54 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Sun, QinX" X-Patchwork-Id: 84398 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id E5919A04DD; Fri, 20 Nov 2020 03:10:30 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id DC41EC8B2; Fri, 20 Nov 2020 03:10:29 +0100 (CET) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 81393C8B2 for ; Fri, 20 Nov 2020 03:10:27 +0100 (CET) IronPort-SDR: H3bAL2jGo+7zo62OWLX8710cPb4snvlbukkFQw3ZK5PeCj8LVhE+6BXWAs2nPTVTyjyFPQy5UD I6hPO268/GCg== X-IronPort-AV: E=McAfee;i="6000,8403,9810"; a="170618894" X-IronPort-AV: E=Sophos;i="5.78,354,1599548400"; d="scan'208";a="170618894" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Nov 2020 18:10:27 -0800 IronPort-SDR: Cvm2i5VvsPc6zYP22k2p0JKXkjZkcggt+KxSBe2eFp26+OGj3J3kNuFMH5cZbuAwVVU+bYgWL5 68NNgIQGvoow== X-IronPort-AV: E=Sophos;i="5.78,354,1599548400"; d="scan'208";a="535003920" Received: from unknown (HELO localhost.localdomain) ([10.240.183.105]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Nov 2020 18:10:26 -0800 From: sunqin To: dts@dpdk.org Cc: sunqin Date: Fri, 20 Nov 2020 10:45:54 +0000 Message-Id: <20201120104556.27730-5-qinx.sun@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201120104556.27730-1-qinx.sun@intel.com> References: <20201120104556.27730-1-qinx.sun@intel.com> Subject: [dts] [PATCH V1 4/6] test_plans/cvl_fdir remove 1 subcase 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" Remove 1 case: test_add_delete_rules The case has been moved to 'cvl_limit_value_test' suite Signed-off-by: sunqin --- test_plans/cvl_fdir_test_plan.rst | 38 +------------------------------ 1 file changed, 1 insertion(+), 37 deletions(-) diff --git a/test_plans/cvl_fdir_test_plan.rst b/test_plans/cvl_fdir_test_plan.rst index 740cb37c..c6b6a8c5 100644 --- a/test_plans/cvl_fdir_test_plan.rst +++ b/test_plans/cvl_fdir_test_plan.rst @@ -3699,43 +3699,7 @@ Subcase 1: port stop/port start/port reset check the packet are redirected to queue 2 with FDIR matched ID=0x1 -Subcase 2: add/delete rules ---------------------------- - -1. create two rules:: - - flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions queue index 1 / mark / end - flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions rss queues 2 3 end / mark id 1 / end - - return the message:: - - Flow rule #0 created - Flow rule #1 created - - list the rules:: - - testpmd> flow list 0 - ID Group Prio Attr Rule - 0 0 0 i-- ETH IPV4 UDP => QUEUE MARK - 1 0 0 i-- ETH IPV4 TCP => RSS MARK - -2. delete the rules:: - - testpmd> flow flush 0 - -3. repeate the create and delete operations in step1-2 15360 times. - -4. create the two rules one more time, check the rules listed. - -5. send matched packet:: - - sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21")/UDP(sport=22,dport=23)/Raw('x' * 80)],iface="enp175s0f0") - sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21")/TCP(sport=22,dport=23)/Raw('x' * 80)],iface="enp175s0f0") - - check packet 1 is redirected to queue 1 with FDIR matched ID=0x0 - check packet 2 is redirected to queue 2 or queue 3 with FDIR matched ID=0x1 - -Subcase 3: delete rules +Subcase 2: delete rules ----------------------- 1. create 3 rules and destory the first rule:: From patchwork Fri Nov 20 10:45:55 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Sun, QinX" X-Patchwork-Id: 84399 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2BE6FA04DD; Fri, 20 Nov 2020 03:10:33 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 2255CC8C4; Fri, 20 Nov 2020 03:10:32 +0100 (CET) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 29170C8DE for ; Fri, 20 Nov 2020 03:10:30 +0100 (CET) IronPort-SDR: e40BQZyPV3RgNRDGlIThgHaUjNzf3rOiWwNPLx5Qm0tAxNrwWpXQn6G3ytvhN/PtMskTYNd8ry ZZwF1kJTf5Vw== X-IronPort-AV: E=McAfee;i="6000,8403,9810"; a="170618897" X-IronPort-AV: E=Sophos;i="5.78,354,1599548400"; d="scan'208";a="170618897" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Nov 2020 18:10:29 -0800 IronPort-SDR: NnMM++3n9+0Js/7tcqg2dQfPrYYg/DTBwnHlK/lpWRi2mv8RttPGl1cxK23ZSR35nkvI1y5oWW gY546bhFaw/Q== X-IronPort-AV: E=Sophos;i="5.78,354,1599548400"; d="scan'208";a="535003927" Received: from unknown (HELO localhost.localdomain) ([10.240.183.105]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Nov 2020 18:10:28 -0800 From: sunqin To: dts@dpdk.org Cc: sunqin Date: Fri, 20 Nov 2020 10:45:55 +0000 Message-Id: <20201120104556.27730-6-qinx.sun@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201120104556.27730-1-qinx.sun@intel.com> References: <20201120104556.27730-1-qinx.sun@intel.com> Subject: [dts] [PATCH V1 5/6] tests/cvl_dcf_switch_filter remove 1 case 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" Remove 1 case: test_max_rule_number The case has been moved to 'cvl_limit_value_test' suite Signed-off-by: sunqin --- tests/TestSuite_cvl_dcf_switch_filter.py | 73 ------------------------ 1 file changed, 73 deletions(-) diff --git a/tests/TestSuite_cvl_dcf_switch_filter.py b/tests/TestSuite_cvl_dcf_switch_filter.py index 64f50de4..a65b73a3 100644 --- a/tests/TestSuite_cvl_dcf_switch_filter.py +++ b/tests/TestSuite_cvl_dcf_switch_filter.py @@ -2025,79 +2025,6 @@ class CVLDCFSwitchFilterTest(TestCase): destroy_dict["expect_results"]["expect_pkts"] = 0 self.send_and_check_packets(destroy_dict) - def test_max_rule_number(self): - #set up 4 vfs on 1 pf environment - self.setup_1pf_vfs_env() - #create 32563 rules with the same pattern, but different input set to file - src_file = 'dep/testpmd_cmds_32k_switch_rules' - flows = open(src_file, mode='w') - rule_count = 1 - for i in range(0,255): - for j in range(0,255): - if not rule_count > 32563: - flows.write('flow create 0 ingress pattern eth / ipv4 src is 192.168.%d.%d / end actions vf id 1 / end \n' % (i, j)) - matched_scapy_str = 'Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.%d.%d")/TCP(sport=25,dport=23)/Raw("X"*480)' % (i, j) - tv_max_rule_number["matched"]["scapy_str"].append(matched_scapy_str) - rule_count += 1 - else: - break - if rule_count > 32563: - break - flows.close() - self.dut_file_dir = '/tmp' - self.dut.session.copy_file_to(src_file, self.dut_file_dir) - #launch testpmd with 32563 rules - vf0_pci = self.sriov_vfs_port_0[0].pci - vf1_pci = self.sriov_vfs_port_0[1].pci - all_eal_param = self.dut.create_eal_parameters(cores="1S/4C/1T", ports=[vf0_pci, vf1_pci], port_options={vf0_pci:"cap=dcf"}) - command = self.path + all_eal_param + " -- -i --cmdline-file=/tmp/testpmd_cmds_32k_switch_rules" - out = self.dut.send_expect(command, "testpmd> ", 360) - self.testpmd_status = "running" - self.dut.send_expect("set portlist 1", "testpmd> ", 15) - self.dut.send_expect("set fwd rxonly", "testpmd> ", 15) - #check the rule list with 32563 rules - rule_list_num = list(range(0, 32563)) - rule_list = [str(x) for x in rule_list_num] - self.check_switch_filter_rule_list(0, rule_list) - #create other rules to make switch filter table full - m = i - t = j - p = re.compile(r"Flow rule #(\d+) created") - switch_table_full_flag = False - count = 0 - for i in range(m,255): - for j in range(t,255): - rule = 'flow create 0 ingress pattern eth / ipv4 src is 192.168.%d.%d / end actions vf id 1 / end \n' % (i, j) - matched_packet = 'Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.%d.%d")/TCP(sport=25,dport=23)/Raw("X"*480)' % (i, j) - out = self.dut.send_expect(rule, "testpmd> ", timeout=2) #create a rule - m1 = p.search(out) - if m1: - rule_list.append(m1.group(1)) - tv_max_rule_number["matched"]["scapy_str"].append(matched_packet) - count += 1 - else: - self.verify("Failed to create flow" in out, "Log not provide a friendly output to indicate that the rule failed to create.") - switch_table_full_flag = True - break - if switch_table_full_flag: - break - tv_max_rule_number["matched"]["expect_results"]["expect_pkts"] += count - #check the rule list - self.check_switch_filter_rule_list(0, rule_list) - #send matched packets and check - matched_dic = tv_max_rule_number["matched"] - self.send_and_check_packets(matched_dic) - #send mismatched packets and check - mismatched_dic = tv_max_rule_number["mismatched"] - self.send_and_check_packets(mismatched_dic) - #destroy rules and send matched packets - self.dut.send_expect("flow flush 0", "testpmd> ", 300) - self.check_switch_filter_rule_list(0, []) - #send matched packets and check - destroy_dict = copy.deepcopy(matched_dic) - destroy_dict["expect_results"]["expect_pkts"] = 0 - self.send_and_check_packets(destroy_dict) - def test_dcf_stop_start(self): #set up 4 vfs on 1 pf environment self.setup_1pf_vfs_env() From patchwork Fri Nov 20 10:45:56 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Sun, QinX" X-Patchwork-Id: 84400 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 60C85A04DD; Fri, 20 Nov 2020 03:10:35 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 58CD0C8CC; Fri, 20 Nov 2020 03:10:34 +0100 (CET) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 7ECF0C8E4 for ; Fri, 20 Nov 2020 03:10:32 +0100 (CET) IronPort-SDR: P0u5+p/XurikFJj2QNEViYXWYj0KMW89bVGVQCzvtBRqHlMVY5MBicozgTqs/Ev2FdVm3Tw+Iw u38ObOx3xJoA== X-IronPort-AV: E=McAfee;i="6000,8403,9810"; a="170618901" X-IronPort-AV: E=Sophos;i="5.78,354,1599548400"; d="scan'208";a="170618901" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Nov 2020 18:10:32 -0800 IronPort-SDR: yKQz2dPe/4JeI2yMrY6K+BkACAX/L5JfbJZrOubBs4tDXJCrdL4TkR0uJKcltggVuI1R+Hk8my CIsCvDxnes3g== X-IronPort-AV: E=Sophos;i="5.78,354,1599548400"; d="scan'208";a="535003939" Received: from unknown (HELO localhost.localdomain) ([10.240.183.105]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Nov 2020 18:10:31 -0800 From: sunqin To: dts@dpdk.org Cc: sunqin Date: Fri, 20 Nov 2020 10:45:56 +0000 Message-Id: <20201120104556.27730-7-qinx.sun@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201120104556.27730-1-qinx.sun@intel.com> References: <20201120104556.27730-1-qinx.sun@intel.com> Subject: [dts] [PATCH V1 6/6] test_plans/cvl_dcf_switch_filter remove 1 case 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" Remove 1 case: test_max_rule_number The case has been moved to 'cvl_limit_value_test' suite Signed-off-by: sunqin --- .../cvl_dcf_switch_filter_test_plan.rst | 57 ------------------- 1 file changed, 57 deletions(-) diff --git a/test_plans/cvl_dcf_switch_filter_test_plan.rst b/test_plans/cvl_dcf_switch_filter_test_plan.rst index ff7c4454..55ea726f 100644 --- a/test_plans/cvl_dcf_switch_filter_test_plan.rst +++ b/test_plans/cvl_dcf_switch_filter_test_plan.rst @@ -4157,63 +4157,6 @@ will not hang and provide a friendly output. check the rules not exist in the list. send matched packets, check the packets are not to port 1. -Test case: max rule number -========================== - -Description: 32k switch filter rules can be created on a CVL card, -and all PFs and VFs share the 32k rules. But the system will first create -some MAC_VLAN rules in switch table, and as the number of rules increased, -the hash conflicts in the switch filter table are increased, so we can -create a total of 32563 switch filter rules on a DCF. - -1. create 32563 rules with the same pattern, but different input set:: - - testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.0 / end actions vf id 1 / end - testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.1 / end actions vf id 1 / end - ...... - testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.127.177 / end actions vf id 1 / end - testpmd> flow list 0 - - check the rules exist in the list. - -2. create one more rule:: - - testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.127.178 / end actions vf id 1 / end - - check the rule can not be created successfully, and - testpmd provide a friendly output, showing:: - - ice_flow_create(): Failed to create flow - port_flow_complain(): Caught PMD error type 2 (flow rule (handle)): switch filter create flow fail: Invalid argument - -3. check the rule list - - testpmd> flow list 0 - - check the rule in step 2 not exists in the list. - -4. send 32563 matched packets for rule 0-32562:: - - sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.0")/TCP(sport=25,dport=23)/("X"*480)], iface="ens786f0", count=1) - sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1")/TCP(sport=25,dport=23)/("X"*480)], iface="ens786f0", count=1) - ...... - sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.127.177")/TCP(sport=25,dport=23)/("X"*480)], iface="ens786f0", count=1) - - check port 1 receive the 32563 packets. - send 1 mismatched packet:: - - sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.167.0.1")/TCP(sport=25,dport=23)/("X"*480)], iface="ens786f0", count=1) - - check the packet are not to port 1. - -5. verify rules can be destroyed:: - - testpmd> flow flush 0 - testpmd> flow list 0 - - check the rules not exist in the list. - send 32563 matched packets, check the packets are not to port 1. - Test case: negative cases =========================