* [dts] [PATCH V1 1/6] tests/iavf_fdir remove 6 cases
2020-11-20 10:45 [dts] [PATCH V1 0/6] Remove 8 duplicate cases sunqin
2020-11-20 2:16 ` Sun, QinX
@ 2020-11-20 10:45 ` sunqin
2020-11-20 10:45 ` [dts] [PATCH V1 2/6] test_plans/iavf_fdir remove 6 subcases sunqin
` (5 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: sunqin @ 2020-11-20 10:45 UTC (permalink / raw)
To: dts; +Cc: sunqin
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 <qinx.sun@intel.com>
---
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
--
2.17.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [dts] [PATCH V1 2/6] test_plans/iavf_fdir remove 6 subcases
2020-11-20 10:45 [dts] [PATCH V1 0/6] Remove 8 duplicate cases sunqin
2020-11-20 2:16 ` Sun, QinX
2020-11-20 10:45 ` [dts] [PATCH V1 1/6] tests/iavf_fdir remove 6 cases sunqin
@ 2020-11-20 10:45 ` sunqin
2020-11-20 10:45 ` [dts] [PATCH V1 3/6] tests/cvl_fdir remove 1 case sunqin
` (4 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: sunqin @ 2020-11-20 10:45 UTC (permalink / raw)
To: dts; +Cc: sunqin
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 <qinx.sun@intel.com>
---
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 <Rule 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 <Rule ID>
-
-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 <Rule 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 <Rule ID>
-
-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 <Rule ID>
-
-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::
--
2.17.1
^ permalink raw reply [flat|nested] 9+ messages in thread