get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 85260,
    "url": "https://patches.dpdk.org/api/patches/85260/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20201216211257.37195-2-aboyer@pensando.io/",
    "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": "<20201216211257.37195-2-aboyer@pensando.io>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20201216211257.37195-2-aboyer@pensando.io",
    "date": "2020-12-16T21:12:51",
    "name": "[v2,1/7] net/ionic: preserve RSS state unless RETA size changes",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "6cdc1330461bb531567a54593d9fbac02fb82cfe",
    "submitter": {
        "id": 2036,
        "url": "https://patches.dpdk.org/api/people/2036/?format=api",
        "name": "Andrew Boyer",
        "email": "aboyer@pensando.io"
    },
    "delegate": {
        "id": 319,
        "url": "https://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20201216211257.37195-2-aboyer@pensando.io/mbox/",
    "series": [
        {
            "id": 14335,
            "url": "https://patches.dpdk.org/api/series/14335/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=14335",
            "date": "2020-12-16T21:12:50",
            "name": "net/ionic: fixes for stop and start",
            "version": 2,
            "mbox": "https://patches.dpdk.org/series/14335/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/85260/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/85260/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 D8461A09F0;\n\tWed, 16 Dec 2020 22:13:40 +0100 (CET)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 81CA6C9D8;\n\tWed, 16 Dec 2020 22:13:25 +0100 (CET)",
            "from mail-pl1-f170.google.com (mail-pl1-f170.google.com\n [209.85.214.170]) by dpdk.org (Postfix) with ESMTP id 787B2C9D6\n for <dev@dpdk.org>; Wed, 16 Dec 2020 22:13:23 +0100 (CET)",
            "by mail-pl1-f170.google.com with SMTP id v3so13647914plz.13\n for <dev@dpdk.org>; Wed, 16 Dec 2020 13:13:23 -0800 (PST)",
            "from driver-dev1.pensando.io ([12.226.153.42])\n by smtp.gmail.com with ESMTPSA id r67sm3345614pfc.82.2020.12.16.13.13.20\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Wed, 16 Dec 2020 13:13:20 -0800 (PST)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=pensando.io; s=google;\n h=from:to:cc:subject:date:message-id:in-reply-to:references\n :in-reply-to:references;\n bh=g5MRGZOM2ag3W4mzO0OaYTErIvBW8n30gLP1q6tXNSI=;\n b=KJEXrlRBe+EdAzVam27gSy4cbOUmFecxeuPZA1xKDIw3uT8vCKwbVdFul2HQlz7TFc\n JCQ2CbafBkRrLg5AsEtfqyynwJOGFLKtI96ToBjbp5rkVy9JwdkvTKiG7JTEVkQSbDxa\n DqGy1q4ZH5lX9Uh8YS9XXcBnzYTmw8B1E4FYLMpYw8OavrC7cRaOgihXfLyAfJervmv2\n B2zhhNJ+cyCHI2JDzJvTGypJPHalFEj+DreoAUd7auUoCkPG44K3XWDkOI1X2wMhrKnq\n Kk8uN1S4VQUrZ/LxKq+sW2QfJwGNaD+7ovCEVHSKmAheb01kwqkqrvtvEcg5WV3stvlP\n +cWA==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20161025;\n h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n :references:in-reply-to:references;\n bh=g5MRGZOM2ag3W4mzO0OaYTErIvBW8n30gLP1q6tXNSI=;\n b=geKfsIWUfp4np+yu0zkza++VSJr/L+W8eHLsjfF7T8pYmIM4a60F4hNvd0urE4sRzY\n 3GzEup4CZceGsCNkF8e8H8TMloj5NjSMxW6rwgNiFC2prtKW1iW3KUHqVGBlIFmX8hII\n uEfZxmAW78IEi2L0bPjknA0ya3vrFwu4MR2Ks12iKM6A06YqQQFPb6sQOSGdymRz7mjd\n U42Ix4rzrvN+HxHwcB4OcjK4U9aRIe7NisphgNeOTnvMmFIaPAuOeQT/DTUgmcNaVB+V\n SQiomCfG2ybpig+NZIiNqnZzU24H58ZUCHNKsHZK8JTIW3tEoEUuXU/uimGzOWT+ikLc\n ewnw==",
        "X-Gm-Message-State": "AOAM531Wl9f7d78Igz9HNiBJ7xtfE6BsKapqtZp3sBEgWO5Q4NkGWgGU\n gqVQuEzL41/HhBgrVn2pMgIg3MwhD1osgg==",
        "X-Google-Smtp-Source": "\n ABdhPJyRFCr0ianEs5VvwPeWx2Crxbd9sX63CA31HIAHXXK2XFA6W4Hnfg0bm6O1kxjnks7W5aPxKw==",
        "X-Received": "by 2002:a17:902:bb92:b029:d9:e9bf:b775 with SMTP id\n m18-20020a170902bb92b02900d9e9bfb775mr8117251pls.24.1608153201376;\n Wed, 16 Dec 2020 13:13:21 -0800 (PST)",
        "From": "Andrew Boyer <aboyer@pensando.io>",
        "To": "dev@dpdk.org",
        "Cc": "Alfredo Cardigliano <cardigliano@ntop.org>,\n Andrew Boyer <aboyer@pensando.io>",
        "Date": "Wed, 16 Dec 2020 13:12:51 -0800",
        "Message-Id": "<20201216211257.37195-2-aboyer@pensando.io>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": [
            "<20201216211257.37195-1-aboyer@pensando.io>",
            "<20201210142231.63209-1-aboyer@pensando.io>"
        ],
        "References": [
            "<20201216211257.37195-1-aboyer@pensando.io>",
            "<20201210142231.63209-1-aboyer@pensando.io>"
        ],
        "Subject": "[dpdk-dev] [PATCH v2 1/7] net/ionic: preserve RSS state unless RETA\n\tsize changes",
        "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": "This preserves settings across a LIF stop/start.\nThis will become important when link toggling is tied to LIF stop/start.\n\nSigned-off-by: Andrew Boyer <aboyer@pensando.io>\n---\n drivers/net/ionic/ionic_lif.c | 44 ++++++++++++++++-------------------\n drivers/net/ionic/ionic_lif.h |  1 +\n 2 files changed, 21 insertions(+), 24 deletions(-)",
    "diff": "diff --git a/drivers/net/ionic/ionic_lif.c b/drivers/net/ionic/ionic_lif.c\nindex 28ae9dc8a..646c921b2 100644\n--- a/drivers/net/ionic/ionic_lif.c\n+++ b/drivers/net/ionic/ionic_lif.c\n@@ -962,8 +962,6 @@ ionic_lif_rss_config(struct ionic_lif *lif,\n static int\n ionic_lif_rss_setup(struct ionic_lif *lif)\n {\n-\tsize_t tbl_size = sizeof(*lif->rss_ind_tbl) *\n-\t\tlif->adapter->ident.lif.eth.rss_ind_tbl_sz;\n \tstatic const uint8_t toeplitz_symmetric_key[] = {\n \t\t0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A,\n \t\t0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A,\n@@ -971,34 +969,35 @@ ionic_lif_rss_setup(struct ionic_lif *lif)\n \t\t0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A,\n \t\t0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A,\n \t};\n-\tuint32_t socket_id = rte_socket_id();\n \tuint32_t i;\n-\tint err;\n+\tuint16_t tbl_sz = lif->adapter->ident.lif.eth.rss_ind_tbl_sz;\n \n \tIONIC_PRINT_CALL();\n \n-\tlif->rss_ind_tbl_z = rte_eth_dma_zone_reserve(lif->eth_dev,\n-\t\t\"rss_ind_tbl\",\n-\t\t0 /* queue_idx*/, tbl_size, IONIC_ALIGN, socket_id);\n-\n \tif (!lif->rss_ind_tbl_z) {\n-\t\tIONIC_PRINT(ERR, \"OOM\");\n-\t\treturn -ENOMEM;\n-\t}\n+\t\tlif->rss_ind_tbl_z = rte_eth_dma_zone_reserve(lif->eth_dev,\n+\t\t\t\t\t\"rss_ind_tbl\", 0 /* queue_idx */,\n+\t\t\t\t\tsizeof(*lif->rss_ind_tbl) * tbl_sz,\n+\t\t\t\t\tIONIC_ALIGN, rte_socket_id());\n+\t\tif (!lif->rss_ind_tbl_z) {\n+\t\t\tIONIC_PRINT(ERR, \"OOM\");\n+\t\t\treturn -ENOMEM;\n+\t\t}\n \n-\tlif->rss_ind_tbl = lif->rss_ind_tbl_z->addr;\n-\tlif->rss_ind_tbl_pa = lif->rss_ind_tbl_z->iova;\n+\t\tlif->rss_ind_tbl = lif->rss_ind_tbl_z->addr;\n+\t\tlif->rss_ind_tbl_pa = lif->rss_ind_tbl_z->iova;\n+\t}\n \n-\t/* Fill indirection table with 'default' values */\n-\tfor (i = 0; i < lif->adapter->ident.lif.eth.rss_ind_tbl_sz; i++)\n-\t\tlif->rss_ind_tbl[i] = i % lif->nrxqcqs;\n+\tif (lif->rss_ind_tbl_nrxqcqs != lif->nrxqcqs) {\n+\t\tlif->rss_ind_tbl_nrxqcqs = lif->nrxqcqs;\n \n-\terr = ionic_lif_rss_config(lif, IONIC_RSS_OFFLOAD_ALL,\n-\t\ttoeplitz_symmetric_key, NULL);\n-\tif (err)\n-\t\treturn err;\n+\t\t/* Fill indirection table with 'default' values */\n+\t\tfor (i = 0; i < tbl_sz; i++)\n+\t\t\tlif->rss_ind_tbl[i] = i % lif->nrxqcqs;\n+\t}\n \n-\treturn 0;\n+\treturn ionic_lif_rss_config(lif, IONIC_RSS_OFFLOAD_ALL,\n+\t\t\ttoeplitz_symmetric_key, NULL);\n }\n \n static void\n@@ -1578,9 +1577,6 @@ ionic_lif_start(struct ionic_lif *lif)\n \tuint32_t i;\n \tint err;\n \n-\tIONIC_PRINT(DEBUG, \"Setting RSS configuration on port %u\",\n-\t\tlif->port_id);\n-\n \terr = ionic_lif_rss_setup(lif);\n \tif (err)\n \t\treturn err;\ndiff --git a/drivers/net/ionic/ionic_lif.h b/drivers/net/ionic/ionic_lif.h\nindex 8e2b42443..b80931c61 100644\n--- a/drivers/net/ionic/ionic_lif.h\n+++ b/drivers/net/ionic/ionic_lif.h\n@@ -108,6 +108,7 @@ struct ionic_lif {\n \tuint8_t *rss_ind_tbl;\n \trte_iova_t rss_ind_tbl_pa;\n \tconst struct rte_memzone *rss_ind_tbl_z;\n+\tuint32_t rss_ind_tbl_nrxqcqs;\n \tuint32_t info_sz;\n \tstruct ionic_lif_info *info;\n \trte_iova_t info_pa;\n",
    "prefixes": [
        "v2",
        "1/7"
    ]
}