get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 77405,
    "url": "http://patches.dpdk.org/api/patches/77405/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20200911131954.15999-19-qi.z.zhang@intel.com/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20200911131954.15999-19-qi.z.zhang@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200911131954.15999-19-qi.z.zhang@intel.com",
    "date": "2020-09-11T13:19:32",
    "name": "[v2,18/40] net/ice/base: introduce Tx rate limiting on port level",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "d9241b879877b607457d4c5138ccaaf29b85fcb3",
    "submitter": {
        "id": 504,
        "url": "http://patches.dpdk.org/api/people/504/?format=api",
        "name": "Qi Zhang",
        "email": "qi.z.zhang@intel.com"
    },
    "delegate": null,
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20200911131954.15999-19-qi.z.zhang@intel.com/mbox/",
    "series": [
        {
            "id": 12148,
            "url": "http://patches.dpdk.org/api/series/12148/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=12148",
            "date": "2020-09-11T13:19:15",
            "name": "ice base code update",
            "version": 2,
            "mbox": "http://patches.dpdk.org/series/12148/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/77405/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/77405/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-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 1916DA04BA;\n\tFri, 11 Sep 2020 15:19:37 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id D46961C1C2;\n\tFri, 11 Sep 2020 15:16:37 +0200 (CEST)",
            "from mga18.intel.com (mga18.intel.com [134.134.136.126])\n by dpdk.org (Postfix) with ESMTP id 50FAC1C1A9\n for <dev@dpdk.org>; Fri, 11 Sep 2020 15:16:28 +0200 (CEST)",
            "from fmsmga003.fm.intel.com ([10.253.24.29])\n by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 11 Sep 2020 06:16:27 -0700",
            "from dpdk51.sh.intel.com ([10.67.111.82])\n by FMSMGA003.fm.intel.com with ESMTP; 11 Sep 2020 06:16:26 -0700"
        ],
        "IronPort-SDR": [
            "\n i5/iyo879WF7lbR14AmemLDA2CRKC6hO2ne873iwir2FYT0zranqZ2FT8ppFeBghmMb7Ha4Z7m\n UC7QCzIj7b1A==",
            "\n 3Xfsy37KAcKHWa6aIMp33A2tM4pHSmlpMW5HgzyemsnOaoaMKhR70Zp7kNJg3B+qd81lcz//tq\n DXIFQvnNGpOg=="
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6000,8403,9740\"; a=\"146482259\"",
            "E=Sophos;i=\"5.76,415,1592895600\"; d=\"scan'208\";a=\"146482259\"",
            "E=Sophos;i=\"5.76,415,1592895600\"; d=\"scan'208\";a=\"342296617\""
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "From": "Qi Zhang <qi.z.zhang@intel.com>",
        "To": "ferruh.yigit@intel.com",
        "Cc": "dev@dpdk.org, Qi Zhang <qi.z.zhang@intel.com>,\n Shibin Koikkara Reeny <shibin.koikkara.reeny@intel.com>",
        "Date": "Fri, 11 Sep 2020 21:19:32 +0800",
        "Message-Id": "<20200911131954.15999-19-qi.z.zhang@intel.com>",
        "X-Mailer": "git-send-email 2.13.6",
        "In-Reply-To": "<20200911131954.15999-1-qi.z.zhang@intel.com>",
        "References": "<20200907112826.48493-1-qi.z.zhang@intel.com>\n <20200911131954.15999-1-qi.z.zhang@intel.com>",
        "Subject": "[dpdk-dev] [PATCH v2 18/40] net/ice/base: introduce Tx rate\n\tlimiting on port level",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "The PSM Configuration has a Rate Limiter for each associated\nswitch port based on its relative speed from the total BW of\nswitch ports connected to LAN controller. The rate limiters\nwill be dynamic get readjusted if switch port speeds are\nchanged at the root node layer of the scheduler tree. Adding\na function to directly modify the EIR of root node.\n\nSigned-off-by: Shibin Koikkara Reeny <shibin.koikkara.reeny@intel.com>\nSigned-off-by: Qi Zhang <qi.z.zhang@intel.com>\nAcked-by: Qiming Yang <qiming.yang@intel.com>\n---\n drivers/net/ice/base/ice_common.c |  5 +++++\n drivers/net/ice/base/ice_common.h |  1 +\n drivers/net/ice/base/ice_sched.c  | 20 ++++++++++++++++++++\n drivers/net/ice/base/ice_type.h   |  1 +\n 4 files changed, 27 insertions(+)",
    "diff": "diff --git a/drivers/net/ice/base/ice_common.c b/drivers/net/ice/base/ice_common.c\nindex 3d2489113..46754a333 100644\n--- a/drivers/net/ice/base/ice_common.c\n+++ b/drivers/net/ice/base/ice_common.c\n@@ -4382,6 +4382,7 @@ static bool ice_is_main_vsi(struct ice_hw *hw, u16 vsi_handle)\n static enum ice_status\n ice_replay_pre_init(struct ice_hw *hw, struct ice_switch_info *sw)\n {\n+\tenum ice_status status;\n \tu8 i;\n \n \t/* Delete old entries from replay filter list head if there is any */\n@@ -4395,6 +4396,10 @@ ice_replay_pre_init(struct ice_hw *hw, struct ice_switch_info *sw)\n \t\t\t\t  &sw->recp_list[i].filt_replay_rules);\n \tice_sched_replay_agg_vsi_preinit(hw);\n \n+\tstatus = ice_sched_replay_root_node_bw(hw->port_info);\n+\tif (status)\n+\t\treturn status;\n+\n \treturn ice_sched_replay_tc_node_bw(hw->port_info);\n }\n \ndiff --git a/drivers/net/ice/base/ice_common.h b/drivers/net/ice/base/ice_common.h\nindex d176f7495..393e2d3f6 100644\n--- a/drivers/net/ice/base/ice_common.h\n+++ b/drivers/net/ice/base/ice_common.h\n@@ -202,6 +202,7 @@ void ice_sched_replay_agg_vsi_preinit(struct ice_hw *hw);\n void ice_sched_replay_agg(struct ice_hw *hw);\n enum ice_status ice_sched_replay_tc_node_bw(struct ice_port_info *pi);\n enum ice_status ice_replay_vsi_agg(struct ice_hw *hw, u16 vsi_handle);\n+enum ice_status ice_sched_replay_root_node_bw(struct ice_port_info *pi);\n enum ice_status\n ice_sched_replay_q_bw(struct ice_port_info *pi, struct ice_q_ctx *q_ctx);\n struct ice_q_ctx *\ndiff --git a/drivers/net/ice/base/ice_sched.c b/drivers/net/ice/base/ice_sched.c\nindex d05fbfccd..1374b9a09 100644\n--- a/drivers/net/ice/base/ice_sched.c\n+++ b/drivers/net/ice/base/ice_sched.c\n@@ -5382,6 +5382,26 @@ void ice_sched_replay_agg_vsi_preinit(struct ice_hw *hw)\n }\n \n /**\n+ * ice_sched_replay_root_node_bw - replay root node BW\n+ * @pi: port information structure\n+ *\n+ * Replay root node BW settings.\n+ */\n+enum ice_status ice_sched_replay_root_node_bw(struct ice_port_info *pi)\n+{\n+\tenum ice_status status = ICE_SUCCESS;\n+\n+\tif (!pi->hw)\n+\t\treturn ICE_ERR_PARAM;\n+\tice_acquire_lock(&pi->sched_lock);\n+\n+\tstatus = ice_sched_replay_node_bw(pi->hw, pi->root,\n+\t\t\t\t\t  &pi->root_node_bw_t_info);\n+\tice_release_lock(&pi->sched_lock);\n+\treturn status;\n+}\n+\n+/**\n  * ice_sched_replay_tc_node_bw - replay TC node(s) BW\n  * @pi: port information structure\n  *\ndiff --git a/drivers/net/ice/base/ice_type.h b/drivers/net/ice/base/ice_type.h\nindex c558a1cb0..997f97e0d 100644\n--- a/drivers/net/ice/base/ice_type.h\n+++ b/drivers/net/ice/base/ice_type.h\n@@ -776,6 +776,7 @@ struct ice_port_info {\n \t\tsib_head[ICE_MAX_TRAFFIC_CLASS][ICE_AQC_TOPO_MAX_LEVEL_NUM];\n \t/* List contain profile ID(s) and other params per layer */\n \tstruct LIST_HEAD_TYPE rl_prof_list[ICE_AQC_TOPO_MAX_LEVEL_NUM];\n+\tstruct ice_bw_type_info root_node_bw_t_info;\n \tstruct ice_bw_type_info tc_node_bw_t_info[ICE_MAX_TRAFFIC_CLASS];\n \tstruct ice_dcbx_cfg local_dcbx_cfg;\t/* Oper/Local Cfg */\n \t/* DCBX info */\n",
    "prefixes": [
        "v2",
        "18/40"
    ]
}