get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 93950,
    "url": "https://patches.dpdk.org/api/patches/93950/?format=api",
    "web_url": "https://patches.dpdk.org/project/dts/patch/20210607092954.16699-1-yanx.xia@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": "<20210607092954.16699-1-yanx.xia@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dts/20210607092954.16699-1-yanx.xia@intel.com",
    "date": "2021-06-07T09:29:54",
    "name": "[V3] tests/metering_and_policing: modify command of adding port meter policy",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "3e3b3a3c7d928f73f495013777b81c1bf961bbe6",
    "submitter": {
        "id": 2034,
        "url": "https://patches.dpdk.org/api/people/2034/?format=api",
        "name": "Yan Xia",
        "email": "yanx.xia@intel.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dts/patch/20210607092954.16699-1-yanx.xia@intel.com/mbox/",
    "series": [
        {
            "id": 17250,
            "url": "https://patches.dpdk.org/api/series/17250/?format=api",
            "web_url": "https://patches.dpdk.org/project/dts/list/?series=17250",
            "date": "2021-06-07T09:29:54",
            "name": "[V3] tests/metering_and_policing: modify command of adding port meter policy",
            "version": 3,
            "mbox": "https://patches.dpdk.org/series/17250/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/93950/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/93950/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 mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 8A0D7A034F;\n\tMon,  7 Jun 2021 11:25:23 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 73AD34067E;\n\tMon,  7 Jun 2021 11:25:23 +0200 (CEST)",
            "from mga09.intel.com (mga09.intel.com [134.134.136.24])\n by mails.dpdk.org (Postfix) with ESMTP id B0D7B40147\n for <dts@dpdk.org>; Mon,  7 Jun 2021 11:25:21 +0200 (CEST)",
            "from orsmga002.jf.intel.com ([10.7.209.21])\n by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 07 Jun 2021 02:25:19 -0700",
            "from unknown (HELO localhost.localdomain) ([10.240.183.80])\n by orsmga002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 07 Jun 2021 02:25:17 -0700"
        ],
        "IronPort-SDR": [
            "\n gYoD/jVAq7cEjqcJWBmB4iNr90dOVNI8pjqPAacvjpy0GDXuCIWvKYqfK2BtzFMrFSCrM/dZdu\n W1/eOhx0eESA==",
            "\n OeiwNaJDgrXwid+YDnARTu9jZFR/DPJPygIROhOstFVgmnw2gZC+SxZqY/q/tgqQZGVe58W/vg\n +3pjXbMr+nCA=="
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6200,9189,10007\"; a=\"204559589\"",
            "E=Sophos;i=\"5.83,254,1616482800\"; d=\"scan'208\";a=\"204559589\"",
            "E=Sophos;i=\"5.83,254,1616482800\"; d=\"scan'208\";a=\"418444362\""
        ],
        "From": "Yan Xia <yanx.xia@intel.com>",
        "To": "dts@dpdk.org",
        "Cc": "Yan Xia <yanx.xia@intel.com>",
        "Date": "Mon,  7 Jun 2021 17:29:54 +0800",
        "Message-Id": "<20210607092954.16699-1-yanx.xia@intel.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "Subject": "[dts] [PATCH V3] tests/metering_and_policing: modify command of\n adding port meter policy",
        "X-BeenThere": "dts@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "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": "modify Testsuite because of dpdk changes of adding port meter policy\n\nSigned-off-by: Yan Xia <yanx.xia@intel.com>\n---\n tests/TestSuite_metering_and_policing.py | 114 ++++++++++++++++-------\n 1 file changed, 80 insertions(+), 34 deletions(-)",
    "diff": "diff --git a/tests/TestSuite_metering_and_policing.py b/tests/TestSuite_metering_and_policing.py\nindex 7f52f33f..a566c65c 100644\n--- a/tests/TestSuite_metering_and_policing.py\n+++ b/tests/TestSuite_metering_and_policing.py\n@@ -171,12 +171,26 @@ class TestMeteringAndPolicing(TestCase):\n         self.dut.send_expect(\"add port meter profile trtcm_rfc2698 %d %d %d %d %d %d 0\"\n                              % (self.port_id, profile_id, cir, pir, cbs, pbs), \"testpmd>\")\n \n-    def create_port_meter(self, mtr_id, profile_id, gyrd_action):\n+    def add_port_meter_policy(self, port_id, policy_id, g_actions, y_actions, r_actions):\n+        \"\"\"\n+        Add port meter policy\n+        \"\"\"\n+        gyrd_action_list = [g_actions, y_actions, r_actions]\n+\n+        for i in range(len(gyrd_action_list)):\n+            if gyrd_action_list[i] != \"drop\":\n+                gyrd_action_list[i] = \"color type \" + gyrd_action_list[i]\n+\n+        self.dut.send_expect(\n+            \"add port meter policy %d %d g_actions %s / end y_actions %s / end r_actions %s / end\"\n+            % (port_id, policy_id, gyrd_action_list[0], gyrd_action_list[1], gyrd_action_list[2]), \"testpmd>\")\n+\n+    def create_port_meter(self, port_id, mtr_id, profile_id, policy_id, gyrd_action):\n         \"\"\"\n         Create new meter object for the ethernet device.\n         \"\"\"\n-        self.dut.send_expect(\"create port meter %d %d %d yes %s\"\n-                             % (self.port_id, mtr_id, profile_id, gyrd_action), \"testpmd>\")\n+        self.dut.send_expect(\"create port meter %d %d %d %d yes %s\"\n+                             % (port_id, mtr_id, profile_id, policy_id, gyrd_action), \"testpmd>\")\n \n     def create_flow_rule(self, ret_id, ip_ver, protocol, spec_id,  mtr_id, queue_index_id):\n         \"\"\"\n@@ -336,7 +350,8 @@ class TestMeteringAndPolicing(TestCase):\n         pkt_list = self.run_param(cbs=cbs, pbs=pbs, head=40)\n         self.start_testpmd(self.new_firmware_cli)\n         self.add_port_meter_profile(profile_id=0, cbs=cbs, pbs=pbs)\n-        self.create_port_meter(mtr_id=0, profile_id=0, gyrd_action=\"g y r 0 0 0\")\n+        self.add_port_meter_policy(self.port_id, policy_id=0, g_actions=\"green\", y_actions=\"yellow\", r_actions=\"red\")\n+        self.create_port_meter(self.port_id, mtr_id=0, profile_id=0, policy_id=0, gyrd_action=\"0 0 0\")\n         self.create_flow_rule(ret_id=1, ip_ver=\"ipv4\", protocol=\"tcp\", spec_id=2, mtr_id=0, queue_index_id=0)\n         self.dut.send_expect(\"start\", \"testpmd>\")\n         self.run_port_list(\"ipv4\",\"tcp\",2,pkt_list,[0,0,0,0])\n@@ -351,7 +366,8 @@ class TestMeteringAndPolicing(TestCase):\n         pkt_list = self.run_param(cbs=cbs, pbs=pbs, head=40)\n         self.start_testpmd(self.new_firmware_cli)\n         self.add_port_meter_profile(profile_id=0, cbs=cbs, pbs=pbs)\n-        self.create_port_meter(mtr_id=0, profile_id=0, gyrd_action=\"g y d 0 0 0\")\n+        self.add_port_meter_policy(self.port_id, policy_id=0, g_actions=\"green\", y_actions=\"yellow\", r_actions=\"drop\")\n+        self.create_port_meter(self.port_id, mtr_id=0, profile_id=0, policy_id=0, gyrd_action=\"0 0 0\")\n         self.create_flow_rule(ret_id=1, ip_ver=\"ipv4\", protocol=\"tcp\", spec_id=2, mtr_id=0, queue_index_id=0)\n         self.dut.send_expect(\"start\", \"testpmd>\")\n         self.run_port_list(\"ipv4\",\"tcp\",2,pkt_list,[-1,0,0,0])\n@@ -366,7 +382,8 @@ class TestMeteringAndPolicing(TestCase):\n         pkt_list = self.run_param(cbs=cbs, pbs=pbs, head=32)\n         self.start_testpmd(self.new_firmware_cli)\n         self.add_port_meter_profile(profile_id=0, cbs=cbs, pbs=pbs)\n-        self.create_port_meter(mtr_id=0, profile_id=0, gyrd_action=\"g d r 0 0 0\")\n+        self.add_port_meter_policy(self.port_id, policy_id=0, g_actions=\"green\", y_actions=\"drop\", r_actions=\"red\")\n+        self.create_port_meter(self.port_id, mtr_id=0, profile_id=0, policy_id=0, gyrd_action=\"0 0 0\")\n         self.create_flow_rule(ret_id=1, ip_ver=\"ipv4\", protocol=\"sctp\", spec_id=2, mtr_id=0, queue_index_id=1)\n         self.dut.send_expect(\"start\", \"testpmd>\")\n         self.run_port_list(\"ipv4\",\"sctp\",2,pkt_list,[1,-1,-1,1])\n@@ -381,7 +398,9 @@ class TestMeteringAndPolicing(TestCase):\n         pkt_list = self.run_param(cbs=cbs, pbs=pbs, head=28)\n         self.start_testpmd(self.new_firmware_cli)\n         self.add_port_meter_profile(profile_id=0, cbs=cbs, pbs=pbs)\n-        self.create_port_meter(mtr_id=0, profile_id=0, gyrd_action=\"d y r 0 0 0\")\n+\n+        self.add_port_meter_policy(self.port_id, policy_id=0, g_actions=\"drop\", y_actions=\"yellow\", r_actions=\"red\")\n+        self.create_port_meter(self.port_id, mtr_id=0, profile_id=0, policy_id=0, gyrd_action=\"0 0 0\")\n         self.create_flow_rule(ret_id=1, ip_ver=\"ipv4\", protocol=\"udp\", spec_id=2, mtr_id=0, queue_index_id=0)\n         self.dut.send_expect(\"start\", \"testpmd>\")\n         self.run_port_list(\"ipv4\",\"udp\",2,pkt_list,[0,0,0,-1])\n@@ -396,7 +415,8 @@ class TestMeteringAndPolicing(TestCase):\n         pkt_list = self.run_param(cbs=cbs, pbs=pbs, head=40)\n         self.start_testpmd(self.new_firmware_cli)\n         self.add_port_meter_profile(profile_id=0, cbs=cbs, pbs=pbs)\n-        self.create_port_meter(mtr_id=0, profile_id=0, gyrd_action=\"d d d 0 0 0\")\n+        self.add_port_meter_policy(self.port_id, policy_id=0, g_actions=\"drop\", y_actions=\"drop\", r_actions=\"drop\")\n+        self.create_port_meter(self.port_id, mtr_id=0, profile_id=0, policy_id=0, gyrd_action=\"0 0 0\")\n         self.create_flow_rule(ret_id=1, ip_ver=\"ipv4\", protocol=\"tcp\", spec_id=2, mtr_id=0, queue_index_id=0)\n         self.dut.send_expect(\"start\", \"testpmd>\")\n         self.run_port_list(\"ipv4\",\"tcp\",2,pkt_list,[-1,-1,-1,-1])\n@@ -411,7 +431,8 @@ class TestMeteringAndPolicing(TestCase):\n         pkt_list = self.run_param(cbs=cbs, pbs=pbs, head=32)\n         self.start_testpmd(self.new_firmware_cli)\n         self.add_port_meter_profile(profile_id=0, cbs=cbs, pbs=pbs)\n-        self.create_port_meter(mtr_id=0, profile_id=0, gyrd_action=\"g d r 0 0 0\")\n+        self.add_port_meter_policy(self.port_id, policy_id=0, g_actions=\"green\", y_actions=\"drop\", r_actions=\"red\")\n+        self.create_port_meter(self.port_id, mtr_id=0, profile_id=0, policy_id=0, gyrd_action=\"0 0 0\")\n         self.create_flow_rule(ret_id=1, ip_ver=\"ipv4\", protocol=\"sctp\", spec_id=2, mtr_id=0, queue_index_id=0)\n         self.dut.send_expect(\"start\", \"testpmd>\")\n         self.run_port_list(\"ipv4\",\"sctp\",2,pkt_list,[0,0])\n@@ -428,7 +449,8 @@ class TestMeteringAndPolicing(TestCase):\n         # test 1 'g y r 0 0 0'\n         self.start_testpmd(self.new_firmware_cli)\n         self.add_port_meter_profile(profile_id=0, cbs=cbs, pbs=pbs)\n-        self.create_port_meter(mtr_id=0, profile_id=0, gyrd_action=\"g y r 0 0 0\")\n+        self.add_port_meter_policy(self.port_id, policy_id=0, g_actions=\"green\", y_actions=\"yellow\", r_actions=\"red\")\n+        self.create_port_meter(self.port_id, mtr_id=0, profile_id=0, policy_id=0, gyrd_action=\"0 0 0\")\n         self.create_flow_rule(ret_id=1, ip_ver=\"ipv4\", protocol=\"tcp\", spec_id=2, mtr_id=0, queue_index_id=0)\n         self.dut.send_expect(\"start\", \"testpmd>\")\n         self.run_port_list(\"ipv4\",\"tcp\",2,pkt_list,[0,0,0,0])\n@@ -437,7 +459,8 @@ class TestMeteringAndPolicing(TestCase):\n         # test 2 'g y d 0 0 0'\n         self.start_testpmd(self.new_firmware_cli)\n         self.add_port_meter_profile(profile_id=0, cbs=cbs, pbs=pbs)\n-        self.create_port_meter(mtr_id=0, profile_id=0, gyrd_action=\"g y d 0 0 0\")\n+        self.add_port_meter_policy(self.port_id, policy_id=0, g_actions=\"green\", y_actions=\"yellow\", r_actions=\"drop\")\n+        self.create_port_meter(self.port_id, mtr_id=0, profile_id=0, policy_id=0, gyrd_action=\"0 0 0\")\n         self.create_flow_rule(ret_id=1, ip_ver=\"ipv4\", protocol=\"tcp\", spec_id=2, mtr_id=0, queue_index_id=0)\n         self.dut.send_expect(\"start\", \"testpmd>\")\n         self.run_port_list(\"ipv4\",\"tcp\",2,pkt_list,[-1,0,0,0])\n@@ -446,7 +469,8 @@ class TestMeteringAndPolicing(TestCase):\n         # test 5 'd d d 0 0 0'\n         self.start_testpmd(self.new_firmware_cli)\n         self.add_port_meter_profile(profile_id=0, cbs=cbs, pbs=pbs)\n-        self.create_port_meter(mtr_id=0, profile_id=0, gyrd_action=\"d d d 0 0 0\")\n+        self.add_port_meter_policy(self.port_id, policy_id=0, g_actions=\"drop\", y_actions=\"drop\", r_actions=\"drop\")\n+        self.create_port_meter(self.port_id, mtr_id=0, profile_id=0, policy_id=0, gyrd_action=\"0 0 0\")\n         self.create_flow_rule(ret_id=1, ip_ver=\"ipv4\", protocol=\"tcp\", spec_id=2, mtr_id=0, queue_index_id=0)\n         self.dut.send_expect(\"start\", \"testpmd>\")\n         self.run_port_list(\"ipv4\",\"tcp\",2,pkt_list,[-1,-1,-1,-1])\n@@ -456,7 +480,8 @@ class TestMeteringAndPolicing(TestCase):\n         pkt_list = self.run_param(cbs=cbs, pbs=pbs, head=32)\n         self.start_testpmd(self.new_firmware_cli)\n         self.add_port_meter_profile(profile_id=0, cbs=cbs, pbs=pbs)\n-        self.create_port_meter(mtr_id=0, profile_id=0, gyrd_action=\"g d r 0 0 0\")\n+        self.add_port_meter_policy(self.port_id, policy_id=0, g_actions=\"green\", y_actions=\"drop\", r_actions=\"red\")\n+        self.create_port_meter(self.port_id, mtr_id=0, profile_id=0, policy_id=0, gyrd_action=\"0 0 0\")\n         self.create_flow_rule(ret_id=1, ip_ver=\"ipv4\", protocol=\"sctp\", spec_id=2, mtr_id=0, queue_index_id=1)\n         self.dut.send_expect(\"start\", \"testpmd>\")\n         self.run_port_list(\"ipv4\",\"sctp\",2,pkt_list,[1,-1,-1,1])\n@@ -466,7 +491,8 @@ class TestMeteringAndPolicing(TestCase):\n         pkt_list = self.run_param(cbs=cbs, pbs=pbs, head=28)\n         self.start_testpmd(self.new_firmware_cli)\n         self.add_port_meter_profile(profile_id=0, cbs=cbs, pbs=pbs)\n-        self.create_port_meter(mtr_id=0, profile_id=0, gyrd_action=\"d y r 0 0 0\")\n+        self.add_port_meter_policy(self.port_id, policy_id=0, g_actions=\"drop\", y_actions=\"yellow\", r_actions=\"red\")\n+        self.create_port_meter(self.port_id, mtr_id=0, profile_id=0, policy_id=0, gyrd_action=\"0 0 0\")\n         self.create_flow_rule(ret_id=1, ip_ver=\"ipv4\", protocol=\"udp\", spec_id=2, mtr_id=0, queue_index_id=0)\n         self.dut.send_expect(\"start\", \"testpmd>\")\n         self.run_port_list(\"ipv4\",\"udp\",2,pkt_list,[0,0,0,-1])\n@@ -481,8 +507,10 @@ class TestMeteringAndPolicing(TestCase):\n         pbs = 500\n         self.start_testpmd(self.new_firmware_cli)\n         self.add_port_meter_profile(profile_id=0, cbs=cbs, pbs=pbs)\n-        self.create_port_meter(mtr_id=0, profile_id=0, gyrd_action=\"g y d 0 0 0\")\n-        self.create_port_meter(mtr_id=1, profile_id=0, gyrd_action=\"d y r 0 0 0\")\n+        self.add_port_meter_policy(self.port_id, policy_id=0, g_actions=\"green\", y_actions=\"yellow\", r_actions=\"drop\")\n+        self.create_port_meter(self.port_id, mtr_id=0, profile_id=0, policy_id=0, gyrd_action=\"0 0 0\")\n+        self.add_port_meter_policy(self.port_id, policy_id=1, g_actions=\"drop\", y_actions=\"yellow\", r_actions=\"red\")\n+        self.create_port_meter(self.port_id, mtr_id=1, profile_id=0, policy_id=1, gyrd_action=\"0 0 0\")\n         self.create_flow_rule(ret_id=1, ip_ver=\"ipv6\", protocol=\"tcp\", spec_id=2, mtr_id=0, queue_index_id=0)\n         self.create_flow_rule(ret_id=1, ip_ver=\"ipv6\", protocol=\"udp\", spec_id=2, mtr_id=1, queue_index_id=1)\n         self.dut.send_expect(\"start\",\"testpmd>\")\n@@ -502,9 +530,11 @@ class TestMeteringAndPolicing(TestCase):\n         self.add_port_meter_profile(profile_id=0, cbs=400, pbs=500)\n         self.add_port_meter_profile(profile_id=1, cbs=300, pbs=400)\n \n-        gyrd_action_list = [\"g y r 0 0 0\", \"g y d 0 0 0\", \"g d r 0 0 0\", \"d y r 0 0 0\", \"g y d 0 0 0\", \"g d r 0 0 0\", \"d y r 0 0 0\", \"d d d 0 0 0\"]\n+        gyrd_action_list = [[\"green\", \"yellow\", \"red\"], [\"green\", \"yellow\", \"drop\"], [\"green\", \"drop\", \"red\"], [\"drop\", \"yellow\", \"red\"],\n+                            [\"green\", \"yellow\", \"drop\"], [\"green\", \"drop\", \"red\"], [\"drop\", \"yellow\", \"red\"], [\"drop\", \"drop\", \"drop\"]]\n         for i in range(0,len(gyrd_action_list)):\n-            self.create_port_meter(mtr_id=i, profile_id=i*2/len(gyrd_action_list), gyrd_action=gyrd_action_list[i])\n+            self.add_port_meter_policy(self.port_id, policy_id=i, g_actions=gyrd_action_list[i][0], y_actions=gyrd_action_list[i][1], r_actions=gyrd_action_list[i][2])\n+            self.create_port_meter(self.port_id, mtr_id=i, profile_id=i * 2 / len(gyrd_action_list), policy_id=i, gyrd_action=\"0 0 0\")\n             self.create_flow_rule(ret_id=1, ip_ver=\"ipv4\", protocol=\"tcp\", spec_id=i, mtr_id=i, queue_index_id=i%len(self.dut_ports))\n         self.create_flow_rule(ret_id=0, ip_ver=\"ipv4\", protocol=\"tcp\", spec_id=8, mtr_id=7, queue_index_id=0)\n \n@@ -550,22 +580,26 @@ class TestMeteringAndPolicing(TestCase):\n         self.dut.send_expect(\"start\", \"testpmd>\")\n \n         # test 0: GYR\n-        self.create_port_meter(mtr_id=0, profile_id=0, gyrd_action=\"g y r 0 0 0\")\n+        self.add_port_meter_policy(self.port_id, policy_id=0, g_actions=\"green\", y_actions=\"yellow\", r_actions=\"red\")\n+        self.create_port_meter(self.port_id, mtr_id=0, profile_id=0, policy_id=0, gyrd_action=\"0 0 0\")\n         self.create_flow_rule(ret_id=1, ip_ver=\"ipv4\", protocol=\"tcp\", spec_id=2, mtr_id=0, queue_index_id=0)\n         self.run_port_list(\"ipv4\",\"tcp\",2,pkt_list,[0,0,0,0])\n \n         # test 1: GYD\n-        self.create_port_meter(mtr_id=1, profile_id=0, gyrd_action=\"g y d 0 0 0\")\n+        self.add_port_meter_policy(self.port_id, policy_id=1, g_actions=\"green\", y_actions=\"yellow\", r_actions=\"drop\")\n+        self.create_port_meter(self.port_id, mtr_id=1, profile_id=0, policy_id=1, gyrd_action=\"0 0 0\")\n         self.create_flow_rule(ret_id=1, ip_ver=\"ipv4\", protocol=\"tcp\", spec_id=2, mtr_id=1, queue_index_id=0)\n         self.run_port_list(\"ipv4\",\"tcp\",2,pkt_list,[-1,-1,-1,-1])\n \n         # test 2: GDR\n-        self.create_port_meter(mtr_id=2, profile_id=0, gyrd_action=\"g d r 0 0 0\")\n+        self.add_port_meter_policy(self.port_id, policy_id=2, g_actions=\"green\", y_actions=\"drop\", r_actions=\"red\")\n+        self.create_port_meter(self.port_id, mtr_id=2, profile_id=0, policy_id=2, gyrd_action=\"0 0 0\")\n         self.create_flow_rule(ret_id=1, ip_ver=\"ipv4\", protocol=\"tcp\", spec_id=2, mtr_id=2, queue_index_id=0)\n         self.run_port_list(\"ipv4\",\"tcp\",2,pkt_list,[0,0,0,0])\n \n         # test 3: DYR\n-        self.create_port_meter(mtr_id=3, profile_id=0, gyrd_action=\"d y r 0 0 0\")\n+        self.add_port_meter_policy(self.port_id, policy_id=3, g_actions=\"drop\", y_actions=\"yellow\", r_actions=\"red\")\n+        self.create_port_meter(self.port_id, mtr_id=3, profile_id=0, policy_id=3, gyrd_action=\"0 0 0\")\n         self.create_flow_rule(ret_id=1, ip_ver=\"ipv4\", protocol=\"tcp\", spec_id=2, mtr_id=3, queue_index_id=0)\n         self.run_port_list(\"ipv4\",\"tcp\",2,pkt_list,[0,0,0,0])\n \n@@ -582,22 +616,26 @@ class TestMeteringAndPolicing(TestCase):\n         self.dut.send_expect(\"start\", \"testpmd>\")\n \n         # test 0: GYR\n-        self.create_port_meter(mtr_id=0, profile_id=0, gyrd_action=\"g y r 0 0 0\")\n+        self.add_port_meter_policy(self.port_id, policy_id=0, g_actions=\"green\", y_actions=\"yellow\", r_actions=\"red\")\n+        self.create_port_meter(self.port_id, mtr_id=0, profile_id=0, policy_id=0, gyrd_action=\"0 0 0\")\n         self.create_flow_rule(ret_id=1, ip_ver=\"ipv4\", protocol=\"tcp\", spec_id=2, mtr_id=0, queue_index_id=0)\n         self.run_port_list(\"ipv4\",\"tcp\",2,pkt_list,[0,0,0,0])\n \n         # test 1: GYD\n-        self.create_port_meter(mtr_id=1, profile_id=0, gyrd_action=\"g y d 0 0 0\")\n+        self.add_port_meter_policy(self.port_id, policy_id=1, g_actions=\"green\", y_actions=\"yellow\", r_actions=\"drop\")\n+        self.create_port_meter(self.port_id, mtr_id=1, profile_id=0, policy_id=1, gyrd_action=\"0 0 0\")\n         self.create_flow_rule(ret_id=1, ip_ver=\"ipv4\", protocol=\"tcp\", spec_id=2, mtr_id=1, queue_index_id=0)\n         self.run_port_list(\"ipv4\",\"tcp\",2,pkt_list,[-1,0,0,0])\n \n         # test 2: GDR\n-        self.create_port_meter(mtr_id=2, profile_id=0, gyrd_action=\"g d r 0 0 0\")\n+        self.add_port_meter_policy(self.port_id, policy_id=2, g_actions=\"green\", y_actions=\"drop\", r_actions=\"red\")\n+        self.create_port_meter(self.port_id, mtr_id=2, profile_id=0, policy_id=2, gyrd_action=\"0 0 0\")\n         self.create_flow_rule(ret_id=1, ip_ver=\"ipv4\", protocol=\"tcp\", spec_id=2, mtr_id=2, queue_index_id=0)\n         self.run_port_list(\"ipv4\",\"tcp\",2,pkt_list,[0,-1,-1,-1])\n \n         # test 3: DYR\n-        self.create_port_meter(mtr_id=3, profile_id=0, gyrd_action=\"d y r 0 0 0\")\n+        self.add_port_meter_policy(self.port_id, policy_id=3, g_actions=\"drop\", y_actions=\"yellow\", r_actions=\"red\")\n+        self.create_port_meter(self.port_id, mtr_id=3, profile_id=0, policy_id=3, gyrd_action=\"0 0 0\")\n         self.create_flow_rule(ret_id=1, ip_ver=\"ipv4\", protocol=\"tcp\", spec_id=2, mtr_id=3, queue_index_id=0)\n         self.run_port_list(\"ipv4\",\"tcp\",2,pkt_list,[0,0,0,0])\n \n@@ -614,22 +652,26 @@ class TestMeteringAndPolicing(TestCase):\n         self.dut.send_expect(\"start\", \"testpmd>\")\n \n         # test 0: GYR\n-        self.create_port_meter(mtr_id=0, profile_id=0, gyrd_action=\"g y r 0 0 0\")\n+        self.add_port_meter_policy(self.port_id, policy_id=0, g_actions=\"green\", y_actions=\"yellow\", r_actions=\"red\")\n+        self.create_port_meter(self.port_id, mtr_id=0, profile_id=0, policy_id=0, gyrd_action=\"0 0 0\")\n         self.create_flow_rule(ret_id=1, ip_ver=\"ipv4\", protocol=\"tcp\", spec_id=2, mtr_id=0, queue_index_id=0)\n         self.run_port_list(\"ipv4\",\"tcp\",2,pkt_list,[0,0,0,0])\n \n         # test 1: GYD\n-        self.create_port_meter(mtr_id=1, profile_id=0, gyrd_action=\"g y d 0 0 0\")\n+        self.add_port_meter_policy(self.port_id, policy_id=1, g_actions=\"green\", y_actions=\"yellow\", r_actions=\"drop\")\n+        self.create_port_meter(self.port_id, mtr_id=1, profile_id=0, policy_id=1, gyrd_action=\"0 0 0\")\n         self.create_flow_rule(ret_id=1, ip_ver=\"ipv4\", protocol=\"tcp\", spec_id=2, mtr_id=1, queue_index_id=0)\n         self.run_port_list(\"ipv4\",\"tcp\",2,pkt_list,[-1,0,0,0])\n \n         # test 2: GDR\n-        self.create_port_meter(mtr_id=2, profile_id=0, gyrd_action=\"g d r 0 0 0\")\n+        self.add_port_meter_policy(self.port_id, policy_id=2, g_actions=\"green\", y_actions=\"drop\", r_actions=\"red\")\n+        self.create_port_meter(self.port_id, mtr_id=2, profile_id=0, policy_id=2, gyrd_action=\"0 0 0\")\n         self.create_flow_rule(ret_id=1, ip_ver=\"ipv4\", protocol=\"tcp\", spec_id=2, mtr_id=2, queue_index_id=0)\n         self.run_port_list(\"ipv4\",\"tcp\",2,pkt_list,[0,-1,-1,0])\n \n         # test 3: DYR\n-        self.create_port_meter(mtr_id=3, profile_id=0, gyrd_action=\"d y r 0 0 0\")\n+        self.add_port_meter_policy(self.port_id, policy_id=3, g_actions=\"drop\", y_actions=\"yellow\", r_actions=\"red\")\n+        self.create_port_meter(self.port_id, mtr_id=3, profile_id=0, policy_id=3, gyrd_action=\"0 0 0\")\n         self.create_flow_rule(ret_id=1, ip_ver=\"ipv4\", protocol=\"tcp\", spec_id=2, mtr_id=3, queue_index_id=0)\n         self.run_port_list(\"ipv4\",\"tcp\",2,pkt_list,[0,0,0,-1])\n \n@@ -646,22 +688,26 @@ class TestMeteringAndPolicing(TestCase):\n         self.dut.send_expect(\"start\", \"testpmd>\")\n \n         # test 0: GYR\n-        self.create_port_meter(mtr_id=0, profile_id=0, gyrd_action=\"g y r 0 0 0\")\n+        self.add_port_meter_policy(self.port_id, policy_id=0, g_actions=\"green\", y_actions=\"yellow\", r_actions=\"red\")\n+        self.create_port_meter(self.port_id, mtr_id=0, profile_id=0, policy_id=0, gyrd_action=\"0 0 0\")\n         self.create_flow_rule(ret_id=1, ip_ver=\"ipv4\", protocol=\"tcp\", spec_id=2, mtr_id=0, queue_index_id=0)\n         self.run_port_list(\"ipv4\",\"tcp\",2,pkt_list,[0,0,0,0])\n \n         # test 1: GYD\n-        self.create_port_meter(mtr_id=1, profile_id=0, gyrd_action=\"g y d 0 0 0\")\n+        self.add_port_meter_policy(self.port_id, policy_id=1, g_actions=\"green\", y_actions=\"yellow\", r_actions=\"drop\")\n+        self.create_port_meter(self.port_id, mtr_id=1, profile_id=0, policy_id=1, gyrd_action=\"0 0 0\")\n         self.create_flow_rule(ret_id=1, ip_ver=\"ipv4\", protocol=\"tcp\", spec_id=2, mtr_id=1, queue_index_id=0)\n         self.run_port_list(\"ipv4\",\"tcp\",2,pkt_list,[-1,0,0,0])\n \n         # test 2: GDR\n-        self.create_port_meter(mtr_id=2, profile_id=0, gyrd_action=\"g d r 0 0 0\")\n+        self.add_port_meter_policy(self.port_id, policy_id=2, g_actions=\"green\", y_actions=\"drop\", r_actions=\"red\")\n+        self.create_port_meter(self.port_id, mtr_id=2, profile_id=0, policy_id=2, gyrd_action=\"0 0 0\")\n         self.create_flow_rule(ret_id=1, ip_ver=\"ipv4\", protocol=\"tcp\", spec_id=2, mtr_id=2, queue_index_id=0)\n         self.run_port_list(\"ipv4\",\"tcp\",2,pkt_list,[0,-1,-1,0])\n \n         # test 3: DYR\n-        self.create_port_meter(mtr_id=3, profile_id=0, gyrd_action=\"d y r 0 0 0\")\n+        self.add_port_meter_policy(self.port_id, policy_id=3, g_actions=\"drop\", y_actions=\"yellow\", r_actions=\"red\")\n+        self.create_port_meter(self.port_id, mtr_id=3, profile_id=0, policy_id=3, gyrd_action=\"0 0 0\")\n         self.create_flow_rule(ret_id=1, ip_ver=\"ipv4\", protocol=\"tcp\", spec_id=2, mtr_id=3, queue_index_id=0)\n         self.run_port_list(\"ipv4\",\"tcp\",2,pkt_list,[0,0,0,-1])\n \n",
    "prefixes": [
        "V3"
    ]
}