get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 39752,
    "url": "https://patches.dpdk.org/api/patches/39752/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/1525973425-28889-1-git-send-email-ophirmu@mellanox.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": "<1525973425-28889-1-git-send-email-ophirmu@mellanox.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1525973425-28889-1-git-send-email-ophirmu@mellanox.com",
    "date": "2018-05-10T17:30:25",
    "name": "[dpdk-dev,v2] net/tap: add RSS hash update callback",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "456c9853a6f7725622adceac957a9962d650685b",
    "submitter": {
        "id": 793,
        "url": "https://patches.dpdk.org/api/people/793/?format=api",
        "name": "Ophir Munk",
        "email": "ophirmu@mellanox.com"
    },
    "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/1525973425-28889-1-git-send-email-ophirmu@mellanox.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/39752/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/39752/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 8AA3F1BBB5;\n\tThu, 10 May 2018 19:30:41 +0200 (CEST)",
            "from EUR01-DB5-obe.outbound.protection.outlook.com\n\t(mail-db5eur01on0047.outbound.protection.outlook.com [104.47.2.47])\n\tby dpdk.org (Postfix) with ESMTP id 1BDF81BBB2\n\tfor <dev@dpdk.org>; Thu, 10 May 2018 19:30:40 +0200 (CEST)",
            "from mellanox.com (37.142.13.130) by\n\tAM4PR0501MB2306.eurprd05.prod.outlook.com (2603:10a6:200:53::19) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.755.16;\n\tThu, 10 May 2018 17:30:37 +0000"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com;\n\ts=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version;\n\tbh=u7raAqXVCJP3rE0TnrcVp7Acw4LGXiU3M8CUYPrjXkw=;\n\tb=yG2MdH5+eGQSkN4DQcNEbWt0FE2+XjT0/Lj55fEOzOtSKo685fmxZ480CcfpdvBtqZquFi0ceXAX9CkzuNiX9flEN9noAnHjxgiALd6XXcpxwTJfdcjSkAzxCvZskVMFkDeQD+xy/1VNfaWe4PAO3uHw4q+2EKW/aGV0TbWYdso=",
        "Authentication-Results": "spf=none (sender IP is )\n\tsmtp.mailfrom=ophirmu@mellanox.com; ",
        "From": "Ophir Munk <ophirmu@mellanox.com>",
        "To": "dev@dpdk.org,\n\tPascal Mazon <pascal.mazon@6wind.com>",
        "Cc": "Thomas Monjalon <thomas@monjalon.net>, Olga Shern <olgas@mellanox.com>, \n\tOphir Munk <ophirmu@mellanox.com>, Shahaf Shuler <shahafs@mellanox.com>",
        "Date": "Thu, 10 May 2018 17:30:25 +0000",
        "Message-Id": "<1525973425-28889-1-git-send-email-ophirmu@mellanox.com>",
        "X-Mailer": "git-send-email 1.8.3.1",
        "In-Reply-To": "<1525969418-24504-1-git-send-email-ophirmu@mellanox.com>",
        "References": "<1525969418-24504-1-git-send-email-ophirmu@mellanox.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[37.142.13.130]",
        "X-ClientProxiedBy": "VI1P193CA0018.EURP193.PROD.OUTLOOK.COM\n\t(2603:10a6:800:bd::28) To AM4PR0501MB2306.eurprd05.prod.outlook.com\n\t(2603:10a6:200:53::19)",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-HT": "Tenant",
        "X-Microsoft-Antispam": "UriScan:; BCL:0; PCL:0;\n\tRULEID:(7020095)(4652020)(5600026)(48565401081)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020);\n\tSRVR:AM4PR0501MB2306; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; AM4PR0501MB2306;\n\t3:LEzTNOaHq1LLqI2gOpI8YDedsCLeiTpgf7sa//pPgs+cCXWuiFW5iQz1iHonQD6uOKoZ9nfIhqnbxPCaO5EtRW9Xom0nLYVb9sbPegXX8hCYwAfVDFVwprhFvPg/HPyKGlUdb1HUohl+N1+oAX0jaYSbWEhfXZVsJgL/IwYjHiSH4gu/KZVTwt1T6D7BINMdpqQNtAdq8sE6XOAbaQRfcu2l/POy4hI/HG57sq7w07x9LKVS073qPJl4vCjCdkam;\n\t25:LSJP8CxbwqNqbUDkzr/PzphuGHd3tDSvlKjFrafO1bHspp6db+1/ukBLjJiXurQtGLNHQK3ag4izo0sB9iNKCYXHQsGEoOWTdZjjjshYz/kxiqIjr0MsoXICLxKZv+/oCsS606bh/mw0LgtOiChQ4MJIXVCeM5gGX9uMB+LrMlaYI0aqXXPzuD0mRlxsBC2zi1hwoPrz/7wNK9/4a+Vtc5NlnKPU2PfM0ApGBe58UfGVxOAOK5SILXdXBEcKyRKvpXbIN343OqDS2cdtSD4d2LTcYkuwioqei8syMNpRVCYHhYj6RdWmWFemtzKUB7aRAxUM5xVkEI8abmoqQlr5SQ==;\n\t31:ToUSHeAhgJLlJj4EBo6q6J+v/rqtyhnstrD8x+CwNQQSo9zKlSPxPzaupY5TR+OgVniKg8mfQMtz5d7XpeQOI7PC9Ik9aixn69KHPwHpCm0ZPYfYxG7fDYhPPwIsNcM1gGAgqh0Mge64tSVu16wMOB8Uo+dkqRRlUqKm4bRo9z3mpfueT3ryGmAJadJIwdfkg4otM2IB42g2WkOIe/XJMpoU6CZiXd7Qsb1i0fYbWwE=",
            "1; AM4PR0501MB2306;\n\t20:xRtOaUtEYgbS71ckLPtY7msGbTEfw65AGk95HeoafedwVc5AKLxmKVnRnHuXSMXZiOWxwy3mB+chRWBVYgK3V5XAxHAenX+wVyt9zzVSKfP/mr6LZy2zpJDhH/sXfpUHBJHualtYMxdtckEJGwJ6dcHKqtiDWa+xWuJ2HEH6pHMLDX2z6KTqzvPkNbxzYQPmxuZgwGZ5yJiHuHByWE1JBGyhQldxi5Zd9KTdJsOeWgyfa2l0TQH+bUquoX+FfVTnz7Ragyc4I79CIgox/wbwiWahlX3WYVJhdfUXo+5wAImCFkzdsJRz4tJtsUnVluJdOLL9ZuhCfG9OTcWsHHzmMz0Y7WmT/F9RdzgZtAiAJ06/C7BNXtK0jd23h1mE3wXqn3tscTPjmcqVXcif9euAFxxQ8AnhdcpzTAzNmzUY/r/Wt209MQ/nbiI4HxWACK+DyuoiHa8LNK2rV5h0V1vIAG50Hyh/La6qYL2C3I0/TJdYdCxTd1Z4t7CRvnCa53Yh;\n\t4:gk5VlIEDCLrWgVnCOnK3AyvqT43ImemwpTVzMdLtNvm2JdUN6Fgx5ZYYmedE7UmjMbGzqdx2xxwF8VUEteO4ucm/Xdql2aUJbsVcv9kKZvSNo/q1uFF5Td20q6xSFNmRYe5/qbPZ8Grs/AtrNfhHPUOROhM7L/ygY40njayrxEM5he3Sb8e+UNbgi+xySAjjsNdFHsIaE4Fuy1GjpamjU1+G9x/1gTfFQ2LK/2T3NQJmCvv05NYbkBnr8X04lU2+cjLDVhBQfTqJfGyqYQ52cw==",
            "=?us-ascii?Q?1; AM4PR0501MB2306;\n\t23:FcO7GYu3rDvNetvM9IdZ08TX9J2KolrOMLyk1pv?=\n\t8/qbfGqWAq2ZdHLlZeZwuuPtJMZ2nMEAssiTH+bptZJlswm+gFuM391b+OiEfqoYh37mRo7dxh81ZWOe1P7LkcthXV/yVVEyum+B+cALR8TX+QBy5P0lrk9bkTPufsjgDLim61hJCXgppGfQw1b/V5CdqDv9HlCX0nHb8aIwFB4Dhk8nMPJHIfKFYNzXvI/3XdCfgnfwhzy3V62Dz2V8l6nFWPHUm0GuJjJ+aYkWlo8EXk7U64kq3Gl6Xrr98FQi8K0KigW5W4gD9hzNkXd5mzwgH05gZWuaKoNqtp+g3UiXmhbR3JzXchGMNYL6x9SNbRNUA0Xc52KswHWe/6zXBvIVKLMjN9+eXKZzdg3ouAyoXaYQxVyr90zanF5f2M0z/GMQQHsTdE4unUuHttnIGAN4NOCVHs542jpoxYaq2p4v5TZocFAEfb816wlXqKaoFhpzO8vx6HQ/d0VRpeRJ2pd6hKPx6neAItdQYT+oOrvlH3IIFy6MCEl4l/hLaaoKr0/fX/Fn6nLMBg8wm+RXQCnZA2lv09WL7RlkFAI1uU3o81JDmMmr6MZUQ09BxIBaPMVVWeJj8o92e0Ihe/PwZ0FFJkMHcK11o1Rvjrsloq6HsSTyxFsYtqX7PLbqcpKLn3clrMSqXurG9aCH6I8xAnzW5A6L6y+RC64/9GYd+cmSUec0W2+q168KPkL2NKPXXrzP5ocAPg5WvpOFX8cUvsKM3YKja/kIhtVyOfdiat6shKH5LFOfXVxWhVnn3Roo3A3T/5HxhiT7VdY2y1Zra/fSZnV7uj/eCfI7WJQiePziZQQUmePS5mcJsMHbAUn9X92pqahKKsOZJhbOvjR5WycSwgPzUQwJFZZ2CjBVH0ExHLz1TJej+3aeR7x80tLRW5gttaUUjknHnQ2XvNW5UsXhOgKctxE5FBDp6WGXGI2WLqqOrDFpPntV096Cf2PtSAXscHrrHDfj8gaxFqzwx4UPt8ik0ITIgmpFmJLlo815oD1nNGShmekxzSaHPBSE54JLLblQaFe6e26LmeJl3vsOmjfpw6s7dY8sWKOgh+fEgfE2Ms8BkVLlfllAVvGE8HUvaoD73K5E6BTt/GoAbSLqYN4fd/O7ARza+WMsJvGlHVoCXKeEyl4Y8Vj0aF3jPxiIVE5GDfi79f6HwSr/klrQKfDkR3/kewXzgjKvZStDU3PsDtlGc8tUWVpTbBlZTnxDPFLsVSaLoI61kWSW2RGNPAeCiJj+59EqtytfsgyPqUBZ/o+2JJP6lDbY0NQTxlgYlNamXCmJWhbRcqdsjkI/3SjmwMlILImOsiiYOsrRqdA==",
            "1; AM4PR0501MB2306;\n\t6:kD/Mk0e9SGsHjopOg3uHTplUHP6/NXnuVy971sCgel5mEcap5fE5sOWH0wHVYNasIpNlWJnHcoL1nm0XKMpAx1PXB0tVpDnFAEOKtNFvKdeQEnuxfzaZR3WmfORfx8MVAKiGg8ey9ts9AarRjQfmpuMSAiaAR7CcGKaql1GQ9qJjsT/w55/bRyD6aFTIS3PRE6pSp6Xo2th6FIQcnJAY++BF7WFOa9bjKKCcedzWBzBZ7wBbzmUTACZgy2hVD5JKhIarQKoRIjYqgCIcH4eWSKv8BJ/j9nKaWhZ+vEwsDTMa23ligMliIqxaRIChxcb3UnWJkZE9b1tEAP1d+SL+vQ/aJy5sGJoXbaDsiHrpiT4pNsJZy+1lZufF/DFBPv6pyYyIrSJWdZT7OqbdiJdfWOpQGa2xNa2Wn+HvbAKZGcczhhOYA48p5OE49Qx/pDD5jfvowf2nWzDlBSYxLmaPvw==;\n\t5:FXr+UIDfr9Vxksk8DnnlgnyW8Ag62Ya21E3ManEZLf04SMvrgcVe6r43dwPRBDYK5BUBJaKkNXgFkQmq5K+eL0DXYUYDNH1OT5OnIhTQydcMilYLqyxakGCGoZ3ccAccC3sYF0vuxS4taF6rPgVM/Xvj1PJnTAAfV/gYbGff0Sg=;\n\t24:eAOYQQhiS8RZLgzzWcytgtjRHGv+6oFqJuftjcn9XoppzumrRrY8X5AyZndJzwhxrxVQ04+xSbtywNYyu6PvRJcynnQ2y9urdRphDDWH4BE=",
            "1; AM4PR0501MB2306;\n\t7:ped33hVBnxGNnNtaxgJRPjEc9Tw9nGmYC/OqoAl/AsY/TA+J9nm5GOgV1NaPc0c5WbHMf09JBzRBDefsYbKo69T4nRxFaXsRxAJNH7kh3fF6toTeslbu9zeX7d20YX2gG8TTv1CxT4mXrRdI4K1LE9trb0u34gL1/8E9mo82UfoGX6pxJW5mry53yR7/Vx5uIgHZ1OTxHYwieF0v2X0sNqI6hurd5Lnla74Trcj3azQVy4kwz8fntmydpjQupCrt"
        ],
        "X-MS-TrafficTypeDiagnostic": "AM4PR0501MB2306:",
        "X-LD-Processed": "a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr",
        "X-Microsoft-Antispam-PRVS": "<AM4PR0501MB23069F30BC26B37F47CBCF19D1980@AM4PR0501MB2306.eurprd05.prod.outlook.com>",
        "X-Exchange-Antispam-Report-Test": "UriScan:;",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(3002001)(10201501046)(3231254)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(20161123560045)(20161123564045)(20161123562045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011);\n\tSRVR:AM4PR0501MB2306; BCL:0; PCL:0; RULEID:; SRVR:AM4PR0501MB2306; ",
        "X-Forefront-PRVS": "066898046A",
        "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10009020)(39380400002)(366004)(39860400002)(396003)(376002)(346002)(189003)(199004)(21086003)(36756003)(186003)(47776003)(8936002)(50466002)(59450400001)(16526019)(52116002)(7696005)(48376002)(76176011)(51416003)(8676002)(6916009)(25786009)(305945005)(97736004)(2906002)(69596002)(55016002)(6116002)(50226002)(4720700003)(4326008)(386003)(81156014)(26005)(81166006)(86362001)(15650500001)(3846002)(7736002)(6666003)(486006)(478600001)(5660300001)(105586002)(16586007)(53936002)(476003)(446003)(11346002)(68736007)(107886003)(106356001)(54906003)(33026002)(2616005)(316002)(956004)(66066001);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:AM4PR0501MB2306; H:mellanox.com; FPR:;\n\tSPF:None; \n\tLANG:en; PTR:InfoNoRecords; MX:1; A:1; ",
        "Received-SPF": "None (protection.outlook.com: mellanox.com does not designate\n\tpermitted sender hosts)",
        "X-Microsoft-Antispam-Message-Info": "kDdbNB85Lg4ojrh9NKj2Ty0L/ejY/twpbMvG6Lib64nQTsLghSfJ76WLB+nnRM0aRC2hCZJBycl3YJZbs28bMAz4WubJYnMj1Vc7JelLJlDt6p0IpYBzx7TPUuXi2ywT9bCsbmzzzrFXRVA00A+jwXfve22r7Q9UlTrW+OrIjK511BQ4PLyvPKLY1fmHf/X3",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-MS-Office365-Filtering-Correlation-Id": "d5c68341-e21b-4822-7c6b-08d5b69bbf30",
        "X-OriginatorOrg": "Mellanox.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "10 May 2018 17:30:37.6406\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "d5c68341-e21b-4822-7c6b-08d5b69bbf30",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "a652971c-7d2e-4d9b-a6a4-d149256f461b",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "AM4PR0501MB2306",
        "Subject": "[dpdk-dev] [PATCH v2] net/tap: add RSS hash update callback",
        "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://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": "<https://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": "Add RSS hash update callback to eth_dev_ops.\n\nSigned-off-by: Ophir Munk <ophirmu@mellanox.com>\n---\nv1:\nInitial release\nv2:\ntypo fix\n\n drivers/net/tap/rte_eth_tap.c | 39 ++++++++++++++++++++++++++++++++++++---\n drivers/net/tap/tap_rss.h     |  3 +++\n 2 files changed, 39 insertions(+), 3 deletions(-)",
    "diff": "diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c\nindex 09cd70c..8556c6c 100644\n--- a/drivers/net/tap/rte_eth_tap.c\n+++ b/drivers/net/tap/rte_eth_tap.c\n@@ -835,11 +835,10 @@ tap_dev_info(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)\n \t\t\t\t    dev_info->tx_queue_offload_capa;\n \tdev_info->hash_key_size = TAP_RSS_HASH_KEY_SIZE;\n \t/*\n-\t * limitation: TAP suppors all of the following hash\n+\t * limitation: TAP supports all of IP, UDP and TCP hash\n \t * functions together and not in partial combinations\n \t */\n-\tdev_info->flow_type_rss_offloads =\n-\t\tETH_RSS_IP | ETH_RSS_UDP | ETH_RSS_TCP;\n+\tdev_info->flow_type_rss_offloads = ~TAP_RSS_HF_MASK;\n }\n \n static int\n@@ -1434,6 +1433,39 @@ tap_flow_ctrl_set(struct rte_eth_dev *dev __rte_unused,\n \treturn 0;\n }\n \n+/**\n+ * DPDK callback to update the RSS hash configuration.\n+ *\n+ * @param dev\n+ *   Pointer to Ethernet device structure.\n+ * @param[in] rss_conf\n+ *   RSS configuration data.\n+ *\n+ * @return\n+ *   0 on success, a negative errno value otherwise and rte_errno is set.\n+ */\n+static int\n+tap_rss_hash_update(struct rte_eth_dev *dev,\n+\t\tstruct rte_eth_rss_conf *rss_conf)\n+{\n+\tif (rss_conf->rss_hf & TAP_RSS_HF_MASK) {\n+\t\trte_errno = EINVAL;\n+\t\treturn -rte_errno;\n+\t}\n+\tif (rss_conf->rss_key && rss_conf->rss_key_len) {\n+\t\t/*\n+\t\t * Currently TAP RSS key is hard coded\n+\t\t * and cannot be updated\n+\t\t */\n+\t\tTAP_LOG(ERR,\n+\t\t\t\"port %u RSS key cannot be updated\",\n+\t\t\tdev->data->port_id);\n+\t\trte_errno = EINVAL;\n+\t\treturn -rte_errno;\n+\t}\n+\treturn 0;\n+}\n+\n static const struct eth_dev_ops ops = {\n \t.dev_start              = tap_dev_start,\n \t.dev_stop               = tap_dev_stop,\n@@ -1459,6 +1491,7 @@ static const struct eth_dev_ops ops = {\n \t.stats_get              = tap_stats_get,\n \t.stats_reset            = tap_stats_reset,\n \t.dev_supported_ptypes_get = tap_dev_supported_ptypes_get,\n+\t.rss_hash_update        = tap_rss_hash_update,\n \t.filter_ctrl            = tap_dev_filter_ctrl,\n };\n \ndiff --git a/drivers/net/tap/tap_rss.h b/drivers/net/tap/tap_rss.h\nindex bd6b97b..17606b2 100644\n--- a/drivers/net/tap/tap_rss.h\n+++ b/drivers/net/tap/tap_rss.h\n@@ -12,6 +12,9 @@\n /* Fixed RSS hash key size in bytes. */\n #define TAP_RSS_HASH_KEY_SIZE 40\n \n+/* Supported RSS */\n+#define TAP_RSS_HF_MASK (~(ETH_RSS_IP | ETH_RSS_UDP | ETH_RSS_TCP))\n+\n /* hashed fields for RSS */\n enum hash_field {\n \tHASH_FIELD_IPV4_L3,\t/* IPv4 src/dst addr */\n",
    "prefixes": [
        "dpdk-dev",
        "v2"
    ]
}