get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 28650,
    "url": "https://patches.dpdk.org/api/patches/28650/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/1505297744-15240-1-git-send-email-alan.dewar@att.com/",
    "project": {
        "id": 1,
        "url": "https://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": "<1505297744-15240-1-git-send-email-alan.dewar@att.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1505297744-15240-1-git-send-email-alan.dewar@att.com",
    "date": "2017-09-13T10:15:44",
    "name": "[dpdk-dev,v2] sched: make RED scaling configurable",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "dc344c6ec9f16f5408db05b6a21cede6bd514b6e",
    "submitter": {
        "id": 817,
        "url": "https://patches.dpdk.org/api/people/817/?format=api",
        "name": "Alan Dewar",
        "email": "alangordondewar@gmail.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/1505297744-15240-1-git-send-email-alan.dewar@att.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/28650/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/28650/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 231BC199A9;\n\tWed, 13 Sep 2017 12:16:07 +0200 (CEST)",
            "from mail-pg0-f68.google.com (mail-pg0-f68.google.com\n\t[74.125.83.68]) by dpdk.org (Postfix) with ESMTP id 40EE97CFD\n\tfor <dev@dpdk.org>; Wed, 13 Sep 2017 12:16:04 +0200 (CEST)",
            "by mail-pg0-f68.google.com with SMTP id i130so5442160pgc.0\n\tfor <dev@dpdk.org>; Wed, 13 Sep 2017 03:16:04 -0700 (PDT)",
            "from bra-l27t7p12.corp.brocade.com ([213.251.34.151])\n\tby smtp.gmail.com with ESMTPSA id\n\tq67sm2752098pfg.160.2017.09.13.03.16.00\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);\n\tWed, 13 Sep 2017 03:16:03 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;\n\th=from:to:cc:subject:date:message-id:in-reply-to:references;\n\tbh=SHZ95WwNi34VCZiLTk/VJb8PvNptt9V5WsbHav+cwA4=;\n\tb=n4d+zVaUvZ4J8zNYSHqDXqUOPWjQa2jZhRwVYsYFn3CqoB7MXP7mPFguNzsP7qgQgY\n\tpss3AKoSeS/v63gGEx/7uTSzUYvGfbDonBcRKuJFcm6hcxcC9cKPNtEAEnRSWV6U4MxS\n\tDDWBMzXgWU/YAhX6cSguWH+ibek3/PC1P+Dq4ZRD7ddxyXIGt3Iwd2Rlc3n152d57fiV\n\tuDRfkUv7uWlL+7sa6Wu7tcmN6IKHfY1E1v6YCP6d6Pj2UmS/S9F9YqzB7Pa+ZHhCfSff\n\toEKD5Yv0we1rzJYNt+QHt8pYSEswv0+dx6n8fuFh/2welQFMZch6vtJ/oQ/uJDOH2RnS\n\t7pnA==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n\t:references;\n\tbh=SHZ95WwNi34VCZiLTk/VJb8PvNptt9V5WsbHav+cwA4=;\n\tb=PNat1AV3hW1dx8KktPflca5CxX4zlMBD+WK0cSJAImPZ8g0QnC4LV3WZHdMhvQL8bJ\n\tS2Ujh9tA0YvEEqbwIrVLzXWwpGX8AwqdCeQ3VEhJBN9S5UJ8dfvkh5q5OgRzC2N0GZUk\n\tJX+aGSEnP4whW0uOJG+EYXKoprN27YmIliV+CmtT0Q98uVWVy9Urby5ORb9EoFvmzAcG\n\tptzRdwpdMD1uyEkG3Ia6E27Wgq80kHSTA+X2qg6A9NUfRdm0sSsgGQsj/ARxHYrhnh19\n\thoJ5+AqI9TAbaJHL/5tcAGggf9GNieB8g0UDrqQUTITM0tR1b5RJkyophOs6oUVOfxOj\n\tnS3A==",
        "X-Gm-Message-State": "AHPjjUgdeJLE7cYNC6+CFrEmwLbC+Db4cBgTAPar0wDt+v+xpuaCznyY\n\twC1VUIa+kvFJow==",
        "X-Google-Smtp-Source": "ADKCNb4ytMkXeqmR8jWVq/9ZXrPjEXftVQ6e2s7K3Q+Sx9gOsuXLtpYjt4npswFSuE4oCDgkZ/kYVw==",
        "X-Received": "by 10.99.61.143 with SMTP id k137mr16991649pga.389.1505297764110;\n\tWed, 13 Sep 2017 03:16:04 -0700 (PDT)",
        "From": "alangordondewar@gmail.com",
        "X-Google-Original-From": "alan.dewar@att.com",
        "To": "tomasz.kantecki@intel.com",
        "Cc": "dev@dpdk.org,\n\tAlan Dewar <alan.dewar@att.com>",
        "Date": "Wed, 13 Sep 2017 11:15:44 +0100",
        "Message-Id": "<1505297744-15240-1-git-send-email-alan.dewar@att.com>",
        "X-Mailer": "git-send-email 2.1.4",
        "In-Reply-To": "<1504273290-5429-1-git-send-email-alan.dewar@att.com>",
        "References": "<1504273290-5429-1-git-send-email-alan.dewar@att.com>",
        "Subject": "[dpdk-dev] [PATCH v2] sched: make RED scaling configurable",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://dpdk.org/ml/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "From: Alan Dewar <alan.dewar@att.com>\n\nThe RED code stores the maximum threshold is a 32-bit integer as a\npseudo fixed-point floating number with 10 fractional bits.  Twelve\nother bits are used to encode the filter weight, leaving just 10 bits\nfor the queue length.  This limits the maximum queue length supported\nby RED queues as 1024 packets.\n\nMove the \"hard\" definitions from red.h into config/common_base so that\nRED scaling can be configured during build.\n\nModified the RED unit-tests to use the new \"soft\" definition of\nmaximum-threshold from config/common_base in tests where it previously\nused a hard coded limit of 1023.\n\nThe RED unit-tests all successfully pass when the maximum-threshold is\nconfigured as 8191 and the RED scaling factor is dropped to seven.\n\nReal-world testing has involved RED queue lengths of 8192 with multiple\ndifferent settings of the RED config parameters: min_th, max_th, wq_log2\nand maxp_inv.\n\nSigned-off-by: Alan Dewar <alan.dewar@att.com>\n---\n config/common_base         |  2 ++\n lib/librte_sched/rte_red.h |  3 +--\n test/test/test_red.c       | 20 ++++++++++----------\n 3 files changed, 13 insertions(+), 12 deletions(-)",
    "diff": "diff --git a/config/common_base b/config/common_base\nindex 5e97a08..5501dfe 100644\n--- a/config/common_base\n+++ b/config/common_base\n@@ -666,6 +666,8 @@ CONFIG_RTE_SCHED_COLLECT_STATS=n\n CONFIG_RTE_SCHED_SUBPORT_TC_OV=n\n CONFIG_RTE_SCHED_PORT_N_GRINDERS=8\n CONFIG_RTE_SCHED_VECTOR=n\n+CONFIG_RTE_RED_SCALING=10\n+CONFIG_RTE_RED_MAX_TH_MAX=1023\n \n #\n # Compile the distributor library\ndiff --git a/lib/librte_sched/rte_red.h b/lib/librte_sched/rte_red.h\nindex ca12227..49d3379 100644\n--- a/lib/librte_sched/rte_red.h\n+++ b/lib/librte_sched/rte_red.h\n@@ -51,10 +51,9 @@ extern \"C\" {\n #include <rte_debug.h>\n #include <rte_cycles.h>\n #include <rte_branch_prediction.h>\n+#include <rte_config.h>\n \n-#define RTE_RED_SCALING                     10         /**< Fraction size for fixed-point */\n #define RTE_RED_S                           (1 << 22)  /**< Packet size multiplied by number of leaf queues */\n-#define RTE_RED_MAX_TH_MAX                  1023       /**< Max threshold limit in fixed point format */\n #define RTE_RED_WQ_LOG2_MIN                 1          /**< Min inverse filter weight value */\n #define RTE_RED_WQ_LOG2_MAX                 12         /**< Max inverse filter weight value */\n #define RTE_RED_MAXP_INV_MIN                1          /**< Min inverse mark probability value */\ndiff --git a/test/test/test_red.c b/test/test/test_red.c\nindex 348075d..70e8cfe 100644\n--- a/test/test/test_red.c\n+++ b/test/test/test_red.c\n@@ -653,14 +653,14 @@ static enum test_result func_test2(struct test_config *tcfg)\n /**\n  * Test F3: functional test 3\n  */\n-static uint32_t ft3_tlevel[] = {1022};\n+static uint32_t ft3_tlevel[] = {RTE_RED_MAX_TH_MAX-1};\n \n static struct test_rte_red_config ft3_tconfig =  {\n \t.rconfig = ft_wrconfig,\n \t.num_cfg = RTE_DIM(ft_wrconfig),\n \t.wq_log2 = ft_wq_log2,\n \t.min_th = 32,\n-\t.max_th = 1023,\n+\t.max_th = RTE_RED_MAX_TH_MAX,\n \t.maxp_inv = ft_maxp_inv,\n };\n \n@@ -766,14 +766,14 @@ static enum test_result func_test3(struct test_config *tcfg)\n /**\n  * Test F4: functional test 4\n  */\n-static uint32_t ft4_tlevel[] = {1022};\n+static uint32_t ft4_tlevel[] = {RTE_RED_MAX_TH_MAX-1};\n static uint8_t ft4_wq_log2[] = {11};\n \n static struct test_rte_red_config ft4_tconfig =  {\n \t.rconfig = ft_wrconfig,\n \t.num_cfg = RTE_DIM(ft_wrconfig),\n \t.min_th = 32,\n-\t.max_th = 1023,\n+\t.max_th = RTE_RED_MAX_TH_MAX,\n \t.wq_log2 = ft4_wq_log2,\n \t.maxp_inv = ft_maxp_inv,\n };\n@@ -1048,7 +1048,7 @@ static enum test_result func_test5(struct test_config *tcfg)\n /**\n  * Test F6: functional test 6\n  */\n-static uint32_t ft6_tlevel[] = {1022};\n+static uint32_t ft6_tlevel[] = {RTE_RED_MAX_TH_MAX-1};\n static uint8_t ft6_wq_log2[] = {9, 8};\n static uint8_t ft6_maxp_inv[] = {10, 20};\n static struct rte_red_config ft6_config[2];\n@@ -1059,7 +1059,7 @@ static struct test_rte_red_config ft6_tconfig =  {\n \t.rconfig = ft6_config,\n \t.num_cfg = RTE_DIM(ft6_config),\n \t.min_th = 32,\n-\t.max_th = 1023,\n+\t.max_th = RTE_RED_MAX_TH_MAX,\n \t.wq_log2 = ft6_wq_log2,\n \t.maxp_inv = ft6_maxp_inv,\n };\n@@ -1547,7 +1547,7 @@ static uint32_t ovfl_qconfig[] = {0, 0, 1, 1};\n static uint32_t ovfl_q[] ={0};\n static uint32_t ovfl_dropped[] ={0};\n static uint32_t ovfl_enqueued[] ={0};\n-static uint32_t ovfl_tlevel[] = {1023};\n+static uint32_t ovfl_tlevel[] = {RTE_RED_MAX_TH_MAX};\n static uint8_t ovfl_wq_log2[] = {12};\n \n static struct test_rte_red_config ovfl_tconfig =  {\n@@ -1555,7 +1555,7 @@ static struct test_rte_red_config ovfl_tconfig =  {\n \t.num_cfg = RTE_DIM(ovfl_wrconfig),\n \t.wq_log2 = ovfl_wq_log2,\n \t.min_th = 32,\n-\t.max_th = 1023,\n+\t.max_th = RTE_RED_MAX_TH_MAX,\n \t.maxp_inv = ovfl_maxp_inv,\n };\n \n@@ -1595,10 +1595,10 @@ static void ovfl_check_avg(uint32_t avg)\n }\n \n static struct test_config ovfl_test1_config = {\n-\t.ifname = \"queue avergage overflow test interface\",\n+\t.ifname = \"queue average overflow test interface\",\n \t.msg = \"overflow test 1 : use one RED configuration,\\n\"\n \t\"\t\t  increase average queue size to target level,\\n\"\n-\t\"\t\t  check maximum number of bits requirte_red to represent avg_s\\n\\n\",\n+\t\"\t\t  check maximum number of bits required to represent avg_s\\n\\n\",\n \t.htxt = \"avg queue size  \"\n \t\"wq_log2  \"\n \t\"fraction bits  \"\n",
    "prefixes": [
        "dpdk-dev",
        "v2"
    ]
}