get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/84395/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 84395,
    "url": "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"
    ]
}