Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/84395/?format=api
https://patches.dpdk.org/api/patches/84395/?format=api", "web_url": "https://patches.dpdk.org/project/dts/patch/20201120104556.27730-2-qinx.sun@intel.com/", "project": { "id": 3, "url": "https://patches.dpdk.org/api/projects/3/?format=api", "name": "DTS", "link_name": "dts", "list_id": "dts.dpdk.org", "list_email": "dts@dpdk.org", "web_url": "", "scm_url": "git://dpdk.org/tools/dts", "webscm_url": "http://git.dpdk.org/tools/dts/", "list_archive_url": "https://inbox.dpdk.org/dts", "list_archive_url_format": "https://inbox.dpdk.org/dts/{}", "commit_url_format": "" }, "msgid": "<20201120104556.27730-2-qinx.sun@intel.com>", "list_archive_url": "https://inbox.dpdk.org/dts/20201120104556.27730-2-qinx.sun@intel.com", "date": "2020-11-20T10:45:51", "name": "[V1,1/6] tests/iavf_fdir remove 6 cases", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "737948474da330b8160a15cd8fef19baf31751b5", "submitter": { "id": 1956, "url": "https://patches.dpdk.org/api/people/1956/?format=api", "name": "Sun, QinX", "email": "qinx.sun@intel.com" }, "delegate": null, "mbox": "https://patches.dpdk.org/project/dts/patch/20201120104556.27730-2-qinx.sun@intel.com/mbox/", "series": [ { "id": 13991, "url": "https://patches.dpdk.org/api/series/13991/?format=api", "web_url": "https://patches.dpdk.org/project/dts/list/?series=13991", "date": "2020-11-20T10:45:50", "name": "Remove 8 duplicate cases", "version": 1, "mbox": "https://patches.dpdk.org/series/13991/mbox/" } ], "comments": "https://patches.dpdk.org/api/patches/84395/comments/", "check": "pending", "checks": "https://patches.dpdk.org/api/patches/84395/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dts-bounces@dpdk.org>", "X-Original-To": "patchwork@inbox.dpdk.org", "Delivered-To": "patchwork@inbox.dpdk.org", "Received": [ "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 5509AA04DD;\n\tFri, 20 Nov 2020 03:10:22 +0100 (CET)", "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 42436C8A8;\n\tFri, 20 Nov 2020 03:10:21 +0100 (CET)", "from mga14.intel.com (mga14.intel.com [192.55.52.115])\n by dpdk.org (Postfix) with ESMTP id 4F254C884\n for <dts@dpdk.org>; Fri, 20 Nov 2020 03:10:18 +0100 (CET)", "from fmsmga005.fm.intel.com ([10.253.24.32])\n by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 19 Nov 2020 18:10:18 -0800", "from unknown (HELO localhost.localdomain) ([10.240.183.105])\n by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 19 Nov 2020 18:10:16 -0800" ], "IronPort-SDR": [ "\n HqIaUUzyjJrFM7wtpRAAwKiwiNB2hKnjihZHMsnwIX+hZRIjI3n2S/3mA0QjGWiMf654qRnTK7\n rrLR0En+sLJQ==", "\n 5070Vu+Sl6D6eysW1Q4I1bO6ziO4x/o/SE2WQNvyl2JJuAzNmOfCmhnmn3xu6oQX0yvbPCt4So\n wyJa6NuqU5bw==" ], "X-IronPort-AV": [ "E=McAfee;i=\"6000,8403,9810\"; a=\"170618881\"", "E=Sophos;i=\"5.78,354,1599548400\"; d=\"scan'208\";a=\"170618881\"", "E=Sophos;i=\"5.78,354,1599548400\"; d=\"scan'208\";a=\"535003873\"" ], "X-Amp-Result": "SKIPPED(no attachment in message)", "X-Amp-File-Uploaded": "False", "From": "sunqin <qinx.sun@intel.com>", "To": "dts@dpdk.org", "Cc": "sunqin <qinx.sun@intel.com>", "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 <dts.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dts>,\n <mailto:dts-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dts/>", "List-Post": "<mailto:dts@dpdk.org>", "List-Help": "<mailto:dts-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dts>,\n <mailto:dts-request@dpdk.org?subject=subscribe>", "Errors-To": "dts-bounces@dpdk.org", "Sender": "\"dts\" <dts-bounces@dpdk.org>" }, "content": "Remove 6 cases:\n\ntest_maxnum_14336rules_1vf\ntest_maxnum_14336rules_2vf\ntest_maxnum_15360rules_1pf_2vf\ntest_maxnum_15360rules_1pf_0_rules_vf\ntest_stress_add_delete_rules_1vf\ntest_stress_add_delete_rules_2vf\n\nThe 6 cases have been moved to 'cvl_limit_value_test' suite\n\nSigned-off-by: sunqin <qinx.sun@intel.com>\n---\n tests/TestSuite_iavf_fdir.py | 393 -----------------------------------\n 1 file changed, 393 deletions(-)", "diff": "diff --git a/tests/TestSuite_iavf_fdir.py b/tests/TestSuite_iavf_fdir.py\nindex 7ee6f4a2..e53f55e8 100644\n--- a/tests/TestSuite_iavf_fdir.py\n+++ b/tests/TestSuite_iavf_fdir.py\n@@ -2989,328 +2989,6 @@ class TestIAVFFdir(TestCase):\n self.dut.close_session(self.session_secondary)\n self.dut.close_session(self.session_third)\n \n- def test_maxnum_14336rules_1vf(self):\n- \"\"\"\n- vfs share 14336 rules table\n- \"\"\"\n- self.dut.kill_all()\n- src_file = 'create_14336_rules'\n- flows=open(self.src_file_dir + src_file,mode='w')\n- count=0\n- for i in range(56):\n- for j in range(256):\n- 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))\n- count=count+1\n- flows.close()\n- self.verify(count == 14336, \"failed to create 14336 fdir rules on vf.\")\n- self.dut.session.copy_file_to(self.src_file_dir + src_file, self.dut_file_dir)\n-\n- eal_param = \"-c f -n 6 -w %s -w %s\" % (self.sriov_vfs_pf0[0].pci,self.sriov_vfs_pf0[1].pci)\n- 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\n- self.dut.send_expect(command, \"testpmd> \", 300)\n- self.config_testpmd()\n-\n- # can't create more than 14336 rules on vf0\n- 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\"\n- self.create_fdir_rule(rule_14336_vf0, check_stats=False)\n- #check there are 14336 rules created.\n- out = self.check_rule_number(port_id=0, num=14336)\n- self.verify(\"14336\" not in out, \"more than 14336 rules can be created on 1vf\")\n-\n- # can't create rule on vf1\n- 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\"\n- self.create_fdir_rule(rule_0_vf1, check_stats=False)\n- self.check_fdir_rule(port_id=1, stats=False)\n-\n- pkt_0 = 'Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.20\",dst=\"192.168.0.0\")/Raw(\"x\" * 80)'\n- pkt_14335 = 'Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.20\",dst=\"192.168.55.255\")/Raw(\"x\" * 80)'\n- pkt_14336 = 'Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.20\",dst=\"192.168.56.0\")/Raw(\"x\" * 80)'\n-\n- # check packet match rule 0 and rule 14335 can be redirected to expected queue\n- out_0 = self.send_pkts_getouput(pkts=pkt_0, pf_id=0)\n- rfc.check_iavf_fdir_mark(out_0, pkt_num=1, check_param={\"port_id\": 0, \"mark_id\": 0, \"queue\": 5}, stats=True)\n- out_14335 = self.send_pkts_getouput(pkts=pkt_14335, pf_id=0)\n- rfc.check_iavf_fdir_mark(out_14335, pkt_num=1, check_param={\"port_id\": 0, \"mark_id\": 0, \"queue\": 5}, stats=True)\n- # check packet match rule 14336 can't be redirected to expected queue.\n- out_14336 = self.send_pkts_getouput(pkts=pkt_14336, pf_id=0)\n- rfc.check_iavf_fdir_mark(out_14336, pkt_num=1, check_param={\"port_id\": 0, \"queue\": 5}, stats=False)\n-\n- # delete one rule of vf0\n- self.dut.send_expect(\"flow destroy 0 rule 0\", \"testpmd> \", timeout=200)\n- self.create_fdir_rule(rule_0_vf1, check_stats=True)\n- 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)'\n- out_0_vf1 = self.send_pkts_getouput(pkts=pkt_0_vf1, pf_id=0)\n- rfc.check_iavf_fdir_mark(out_0_vf1, pkt_num=1, check_param={\"port_id\": 1, \"mark_id\": 0, \"queue\": 5}, stats=True)\n-\n- # flush all the rules\n- self.dut.send_expect(\"flow flush 0\", \"testpmd> \", timeout=200)\n- self.check_fdir_rule(port_id=0, stats=False)\n- out_0 = self.send_pkts_getouput(pkts=pkt_0, pf_id=0)\n- out_14335 = self.send_pkts_getouput(pkts=pkt_14335, pf_id=0)\n- rfc.check_iavf_fdir_mark(out_0, pkt_num=1, check_param={\"port_id\": 0, \"mark_id\": 0, \"queue\": 5}, stats=False)\n- rfc.check_iavf_fdir_mark(out_14335, pkt_num=1, check_param={\"port_id\": 0, \"mark_id\": 0, \"queue\": 5}, stats=False)\n-\n- self.create_fdir_rule(rule_14336_vf0, check_stats=True)\n- out_14336 = self.send_pkts_getouput(pkts=pkt_14336, pf_id=0)\n- rfc.check_iavf_fdir_mark(out_14336, pkt_num=1, check_param={\"port_id\": 0, \"mark_id\": 0, \"queue\": 5}, stats=True)\n-\n- def test_maxnum_14336rules_2vf(self):\n- \"\"\"\n- vfs share 14336 rules table\n- \"\"\"\n- self.dut.kill_all()\n- self.session_secondary = self.dut.new_session()\n- src_file = 'create_14336_rules_2vf'\n- flows=open(self.src_file_dir + src_file,mode='w')\n- 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')\n- count=1\n- for i in range(55):\n- for j in range(256):\n- 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))\n- count=count+1\n- for j in range(255):\n- 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)\n- count=count+1\n- flows.close()\n- self.verify(count == 14336, \"failed to create 14336 fdir rules on 2 vfs.\")\n- self.dut.session.copy_file_to(self.src_file_dir + src_file, self.dut_file_dir)\n-\n- eal_param = \"-c f -n 6 -w %s -w %s\" % (self.sriov_vfs_pf0[0].pci,self.sriov_vfs_pf1[0].pci)\n- 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\n- self.dut.send_expect(command, \"testpmd> \", 300)\n-\n- self.config_testpmd()\n- self.check_fdir_rule(port_id=0, rule_list=['0'])\n-\n- # can't create more than 14336 rules on 2vf\n- 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\"\n- self.create_fdir_rule(rule_14335_vf1, check_stats=False)\n- #check there are 14336 rules created.\n- out = self.check_rule_number(port_id=1, num=14335)\n- self.verify(\"14335\" not in out, \"more than 14336 rules are created on 2vf\")\n-\n- # can't create new rule on vf0\n- 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\"\n- self.create_fdir_rule(rule_1_vf0, check_stats=False)\n- self.check_rule_number(port_id=0, num=1)\n-\n- pkt_0 = 'Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.20\",dst=\"192.168.0.0\")/Raw(\"x\" * 80)'\n- pkt_1 = 'Ether(dst=\"00:11:22:33:44:77\")/IP(src=\"192.168.0.20\",dst=\"192.168.0.0\")/Raw(\"x\" * 80)'\n- pkt_14335 = 'Ether(dst=\"00:11:22:33:44:77\")/IP(src=\"192.168.0.20\",dst=\"192.168.55.254\")/Raw(\"x\" * 80)'\n- pkt_14336 = 'Ether(dst=\"00:11:22:33:44:77\")/IP(src=\"192.168.0.20\",dst=\"192.168.56.0\")/Raw(\"x\" * 80)'\n-\n- self.session_secondary.send_expect(\"ifconfig %s up\" % self.pf0_intf, \"# \", 15)\n- self.session_secondary.send_expect(\"ifconfig %s up\" % self.pf1_intf, \"# \", 15)\n- time.sleep(1)\n-\n- # check packet match rule 0 and rule 14335 can be redirected to expected queue\n- out_0 = self.send_pkts_getouput(pkts=pkt_0, pf_id=0)\n- rfc.check_iavf_fdir_mark(out_0, pkt_num=1, check_param={\"port_id\": 0, \"mark_id\": 0, \"queue\": 5}, stats=True)\n- out_1 = self.send_pkts_getouput(pkts=pkt_1, pf_id=1)\n- rfc.check_iavf_fdir_mark(out_1, pkt_num=1, check_param={\"port_id\": 1, \"mark_id\": 0, \"queue\": 5}, stats=True)\n-\n- out_14335 = self.send_pkts_getouput(pkts=pkt_14335, pf_id=1)\n- rfc.check_iavf_fdir_mark(out_14335, pkt_num=1, check_param={\"port_id\": 1, \"mark_id\": 0, \"queue\": 5}, stats=True)\n- # check packet match rule 14336 can't be redirected to expected queue.\n- out_14336 = self.send_pkts_getouput(pkts=pkt_14336, pf_id=1)\n- rfc.check_iavf_fdir_mark(out_14336, pkt_num=1, check_param={\"port_id\": 1, \"queue\": 5}, stats=False)\n-\n- # destroy rule 0 on vf0, then create a new rule on vf1 successfully.\n- self.dut.send_expect(\"flow flush 0\", \"testpmd> \")\n- self.create_fdir_rule(rule_14335_vf1, check_stats=True)\n- out_14336 = self.send_pkts_getouput(pkts=pkt_14336, pf_id=1)\n- rfc.check_iavf_fdir_mark(out_14336, pkt_num=1, check_param={\"port_id\": 1, \"mark_id\": 0, \"queue\": 5}, stats=True)\n-\n- self.dut.send_expect(\"flow flush 1\", \"testpmd> \", timeout=300)\n-\n- self.check_fdir_rule(port_id=0, stats=False)\n- self.check_fdir_rule(port_id=1, stats=False)\n-\n- out_0 = self.send_pkts_getouput(pkts=pkt_0, pf_id=0)\n- out_1 = self.send_pkts_getouput(pkts=pkt_1, pf_id=1)\n- out_14335 = self.send_pkts_getouput(pkts=pkt_14335, pf_id=1)\n- rfc.check_iavf_fdir_mark(out_0, pkt_num=1, check_param={\"port_id\": 0, \"mark_id\": 0, \"queue\": 5}, stats=False)\n- rfc.check_iavf_fdir_mark(out_1, pkt_num=1, check_param={\"port_id\": 1, \"mark_id\": 0, \"queue\": 5}, stats=False)\n- rfc.check_iavf_fdir_mark(out_14335, pkt_num=1, check_param={\"port_id\": 1, \"mark_id\": 0, \"queue\": 5}, stats=False)\n-\n- self.dut.close_session(self.session_secondary)\n-\n- def test_maxnum_15360rules_1pf_2vf(self):\n- \"\"\"\n- 2*100G NIC, each pf can create 1024 rules at least, vfs share 14336 rules table\n- 4*25G NIC, each pf can create 512 rules at least, vfs share 14336 rules table\n- so if 2*25G NIC, max number is 14848 on 1pf and 2vfs.\n- \"\"\"\n- self.dut.kill_all()\n- self.session_secondary = self.dut.new_session()\n-\n- #create 1025 rules on pf1\n- src_file = 'create_1025_kernel_rules'\n- flows=open(self.src_file_dir + src_file,mode='w')\n- count=0\n- if self.nic in [\"columbiaville_100g\"]:\n- for i in range(4):\n- for j in range(256):\n- 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))\n- count=count+1\n- 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)\n- count=count+1\n- flows.close()\n- self.verify(count == 1025, \"failed to create 1025 fdir rules on pf.\")\n- elif self.nic in [\"columbiaville_25g\"]:\n- for i in range(2):\n- for j in range(256):\n- 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))\n- count=count+1\n- 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)\n- count=count+1\n- flows.close()\n- self.verify(count == 513, \"failed to create 1025 fdir rules on pf.\")\n- self.dut.session.copy_file_to(self.src_file_dir + src_file, self.dut_file_dir)\n- # create 1025 rules on pf1\n- fkr = open(self.src_file_dir + src_file, \"r+\")\n- kernel_rules = fkr.read()\n- fkr.close()\n- self.dut.send_expect(kernel_rules, \"# \")\n- time.sleep(15)\n-\n- #create 1 rule on vf00, and 14334 rules on vf01\n- src_file_vf = 'create_14335_rules_on_2vfs'\n- flows = open(self.src_file_dir + src_file_vf, mode='w')\n- 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')\n- count=1\n- for i in range(55):\n- for j in range(256):\n- 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))\n- count=count+1\n- for j in range(254):\n- 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)\n- count=count+1\n- flows.close()\n- self.verify(count == 14335, \"failed to create 14335 fdir rules on vfs.\")\n- self.dut.session.copy_file_to(self.src_file_dir + src_file_vf, self.dut_file_dir)\n-\n- # start testpmd with creating rules in commandline\n- eal_param = \"-c f -n 6 -w %s -w %s\" % (self.sriov_vfs_pf0[0].pci,self.sriov_vfs_pf0[1].pci)\n- 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\n- fdw = open(\"15360_rules_vf_result.txt\", \"w\")\n- fdw.write(self.dut.send_expect(command, \"testpmd> \", 360))\n- fdw.close()\n-\n- self.config_testpmd()\n- # check there is 1 rule created on vf00\n- self.check_fdir_rule(port_id=0, rule_list=['0'])\n-\n- # can't create more than 14335 rules on 2vf, the rule index is from 0\n- 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\"\n- pkt_14334 = 'Ether(dst=\"00:11:22:33:44:66\")/IP(src=\"192.168.0.20\",dst=\"192.168.56.0\")/Raw(\"x\" * 80)'\n- self.create_fdir_rule(rule_14334_vf1, check_stats=False)\n-\n- #check there are 14334 rules created on vf01\n- out = self.check_rule_number(port_id=1, num=14334)\n- self.verify(\"14334\" not in out, \"more than 15360 rules are created on 2vf\")\n-\n- # delete a rule on pf0\n- self.session_secondary.send_expect(\"ethtool -N %s delete 14847\" % self.pf1_intf, \"# \")\n-\n- # then can create one more rule on vf01\n- self.create_fdir_rule(rule_14334_vf1, check_stats=True)\n- out_14334 = self.send_pkts_getouput(pkts=pkt_14334, pf_id=0)\n- rfc.check_iavf_fdir_mark(out_14334, pkt_num=1, check_param={\"port_id\": 1, \"mark_id\": 0, \"queue\": 5}, stats=True)\n-\n- self.dut.send_expect(\"flow flush 0\", \"testpmd> \", timeout=200)\n- self.dut.send_expect(\"flow flush 1\", \"testpmd> \", timeout=200)\n- self.check_fdir_rule(port_id=0, stats=False)\n- self.check_fdir_rule(port_id=1, stats=False)\n- out_14334 = self.send_pkts_getouput(pkts=pkt_14334, pf_id=0)\n- rfc.check_iavf_fdir_mark(out_14334, pkt_num=1, check_param={\"port_id\": 1, \"mark_id\": 0, \"queue\": 5}, stats=False)\n-\n- self.dut.send_expect(\"quit\", \"# \")\n- self.dut.close_session(self.session_secondary)\n- self.re_load_ice_driver()\n- self.setup_2pf_4vf_env()\n-\n- def test_maxnum_15360rules_1pf_0_rules_vf(self):\n- \"\"\"\n- 2*100G NIC, each pf can create 1024 rules at least, vfs share 14336 rules table\n- 4*25G NIC, each pf can create 512 rules at least, vfs share 14336 rules table\n- so if 2*25G NIC, max number is 14848 on 1pf and vfs.\n- create 15360/14848 rules on pf1, check failed to create rule on vf00 and vf10\n- \"\"\"\n- self.dut.kill_all()\n- self.session_secondary = self.dut.new_session()\n-\n- #create 15360 rules on pf1\n- src_file = 'create_15360_kernel_rules'\n- flows=open(self.src_file_dir + src_file,mode='w')\n- count=0\n- if self.nic in [\"columbiaville_100g\"]:\n- for i in range(60):\n- for j in range(256):\n- 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))\n- count=count+1\n- flows.close()\n- self.verify(count == 15360, \"failed to create 15360 fdir rules on pf.\")\n- elif self.nic in [\"columbiaville_25g\"]:\n- for i in range(58):\n- for j in range(256):\n- 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))\n- count=count+1\n- flows.close()\n- self.verify(count == 14848, \"failed to create 14848 fdir rules on pf.\")\n- self.dut.session.copy_file_to(self.src_file_dir + src_file, self.dut_file_dir)\n- # create 15360 rules on pf1\n- fkr = open(self.src_file_dir + src_file, \"r+\")\n- kernel_rules = fkr.read()\n- fkr.close()\n- self.dut.send_expect(kernel_rules, \"# \")\n- time.sleep(200)\n- # failed to create 1 more rule on pf1\n- 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\")\n- # start testpmd with creating rules in commandline\n- eal_param = \"-c f -n 6 -w %s -w %s\" % (self.sriov_vfs_pf0[0].pci,self.sriov_vfs_pf1[0].pci)\n- command = self.path + eal_param + \" -- -i --rxq=%s --txq=%s\" % (self.cvlq_num, self.cvlq_num)\n- self.dut.send_expect(command, \"testpmd> \", 20)\n-\n- self.config_testpmd()\n- 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\"\n- 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)'\n- 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\"\n- 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)'\n-\n- #failed to create rule on vf00 and vf10\n- self.create_fdir_rule(rule_0_vf00, check_stats=False)\n- self.create_fdir_rule(rule_0_vf10, check_stats=False)\n- self.check_rule_number(port_id=0, num=0)\n- self.check_rule_number(port_id=1, num=0)\n-\n- # delete a rule on pf1\n- self.session_secondary.send_expect(\"ethtool -N %s delete 14847\" % self.pf1_intf, \"# \")\n-\n- # then can create one rule on vf00\n- self.create_fdir_rule(rule_0_vf00, check_stats=True)\n- self.create_fdir_rule(rule_0_vf10, check_stats=False)\n- self.check_rule_number(port_id=0, num=1)\n- self.check_rule_number(port_id=1, num=0)\n-\n- # delete a rule on pf1\n- self.session_secondary.send_expect(\"ethtool -N %s delete 14846\" % self.pf1_intf, \"# \")\n-\n- # then can create one rule on vf10\n- self.create_fdir_rule(rule_0_vf10, check_stats=True)\n- self.check_rule_number(port_id=1, num=1)\n-\n- out_0_vf00 = self.send_pkts_getouput(pkts=pkt_0_vf00, pf_id=0)\n- rfc.check_iavf_fdir_mark(out_0_vf00, pkt_num=1, check_param={\"port_id\": 0, \"mark_id\": 0, \"queue\": 5}, stats=True)\n-\n- out_0_vf10 = self.send_pkts_getouput(pkts=pkt_0_vf10, pf_id=1)\n- rfc.check_iavf_fdir_mark(out_0_vf10, pkt_num=1, check_param={\"port_id\": 1, \"mark_id\": 0, \"queue\": 5}, stats=True)\n-\n- self.dut.send_expect(\"quit\", \"# \")\n- self.dut.close_session(self.session_secondary)\n- self.re_load_ice_driver()\n- self.setup_2pf_4vf_env()\n-\n def test_maxnum_128_profiles(self):\n \"\"\"\n There are 128 profiles in total.\n@@ -3390,77 +3068,6 @@ class TestIAVFFdir(TestCase):\n out = self.send_pkts_getouput(pkts=pkt)\n rfc.check_iavf_fdir_mark(out, pkt_num=1, check_param={\"port_id\": 0, \"mark_id\": 0, \"queue\": 1}, stats=True)\n \n- def test_stress_add_delete_rules_1vf(self):\n- \"\"\"\n- add/delete rules 14336 times on 1 vf\n- \"\"\"\n- rules = [\n- \"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\",\n- \"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\"]\n- pkts = [\n- '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)',\n- '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)']\n- self.dut.kill_all()\n- src_file = 'add_delete_rules_1vf'\n- flows=open(self.src_file_dir + src_file,mode='w')\n- count=0\n- for i in range(14336):\n- flows.write('%s \\n' % rules[0])\n- flows.write('%s \\n' % rules[1])\n- flows.write('flow flush 0\\n')\n- count=count+1\n- flows.close()\n- self.verify(count == 14336, \"failed to add/delete 14336 times of fdir rules on vf.\")\n- self.dut.session.copy_file_to(self.src_file_dir + src_file, self.dut_file_dir)\n-\n- eal_param = \"-c f -n 6 -w %s -w %s\" % (self.sriov_vfs_pf0[0].pci,self.sriov_vfs_pf0[1].pci)\n- 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\n- self.dut.send_expect(command, \"testpmd> \", 900)\n- self.config_testpmd()\n- self.check_fdir_rule(port_id=0, stats=False)\n- self.create_fdir_rule(rules, check_stats=True)\n- out_0 = self.send_pkts_getouput(pkts=pkts[0])\n- rfc.check_iavf_fdir_mark(out_0, pkt_num=1, check_param={\"port_id\": 0, \"mark_id\": 0, \"queue\": 6}, stats=True)\n- out_1 = self.send_pkts_getouput(pkts=pkts[1])\n- rfc.check_iavf_fdir_mark(out_1, pkt_num=1, check_param={\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}, stats=True)\n-\n- def test_stress_add_delete_rules_2vf(self):\n- \"\"\"\n- add/delete rules 14336 times on 2 vfs\n- \"\"\"\n- rules = [\n- \"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\",\n- \"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\"]\n- pkts = [\n- '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)',\n- '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)']\n- self.dut.kill_all()\n- src_file = 'add_delete_rules_2vfs'\n- flows=open(self.src_file_dir + src_file,mode='w')\n- count=0\n- for i in range(14336):\n- flows.write('%s \\n' % rules[0])\n- flows.write('%s \\n' % rules[1])\n- flows.write('flow flush 0\\n')\n- flows.write('flow flush 1\\n')\n- count=count+1\n- flows.close()\n- self.verify(count == 14336, \"failed to add/delete 14336 times of fdir rules on 2 vfs.\")\n- self.dut.session.copy_file_to(self.src_file_dir + src_file, self.dut_file_dir)\n-\n- eal_param = \"-c f -n 6 -w %s -w %s\" % (self.sriov_vfs_pf0[0].pci,self.sriov_vfs_pf0[1].pci)\n- 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\n- self.dut.send_expect(command, \"testpmd> \", 900)\n- self.config_testpmd()\n- self.check_fdir_rule(port_id=0, stats=False)\n- self.check_fdir_rule(port_id=1, stats=False)\n-\n- self.create_fdir_rule(rules, check_stats=True)\n- out_0 = self.send_pkts_getouput(pkts=pkts[0], pf_id=0)\n- rfc.check_iavf_fdir_mark(out_0, pkt_num=1, check_param={\"port_id\": 0, \"queue\": 5}, stats=True)\n- out_1 = self.send_pkts_getouput(pkts=pkts[1], pf_id=0)\n- rfc.check_iavf_fdir_mark(out_1, pkt_num=1, check_param={\"port_id\": 1, \"queue\": 5}, stats=True)\n-\n def test_stress_delete_rules(self):\n \"\"\"\n delete 1st/2nd/last rule won't affect other rules\n", "prefixes": [ "V1", "1/6" ] }{ "id": 84395, "url": "