get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 28119,
    "url": "http://patches.dpdk.org/api/patches/28119/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20170831063719.19273-10-santosh.shukla@caviumnetworks.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": "<20170831063719.19273-10-santosh.shukla@caviumnetworks.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20170831063719.19273-10-santosh.shukla@caviumnetworks.com",
    "date": "2017-08-31T06:37:18",
    "name": "[dpdk-dev,v2,09/10] mempool/octeontx: implement pool update range",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "891f60f66af0ef39f88a5f3e9805d8e765ecac0f",
    "submitter": {
        "id": 480,
        "url": "http://patches.dpdk.org/api/people/480/?format=api",
        "name": "Santosh Shukla",
        "email": "santosh.shukla@caviumnetworks.com"
    },
    "delegate": null,
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20170831063719.19273-10-santosh.shukla@caviumnetworks.com/mbox/",
    "series": [],
    "comments": "http://patches.dpdk.org/api/patches/28119/comments/",
    "check": "fail",
    "checks": "http://patches.dpdk.org/api/patches/28119/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 [IPv6:::1])\n\tby dpdk.org (Postfix) with ESMTP id 54E947CB5;\n\tThu, 31 Aug 2017 08:38:30 +0200 (CEST)",
            "from NAM01-SN1-obe.outbound.protection.outlook.com\n\t(mail-sn1nam01on0056.outbound.protection.outlook.com [104.47.32.56])\n\tby dpdk.org (Postfix) with ESMTP id 603237CC0\n\tfor <dev@dpdk.org>; Thu, 31 Aug 2017 08:38:27 +0200 (CEST)",
            "from localhost.localdomain (111.93.218.67) by\n\tMWHPR07MB3104.namprd07.prod.outlook.com (10.172.95.10) with Microsoft\n\tSMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id\n\t15.20.13.10; Thu, 31 Aug 2017 06:38:22 +0000"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version;\n\tbh=IGI7sbvbNlG8z1B/c7PtuQMII1gxLaL8lX0nkS6Nsbc=;\n\tb=CyM3xt4XiS0xR1Q18fq7eIvCmEgTI1owgZMKDrNzGJch62xK/vbLAR6u0CYxzksYhG7NTm/s1KBh/onw8+0EQeIbR/2gnRORbNfVdygpN203g/t8T6YRqBX/X0pO827AXyvtRYkEgbkyfNOlFCpXfn3m0rxWTGU/toOT+SlY9Gs=",
        "Authentication-Results": "spf=none (sender IP is )\n\tsmtp.mailfrom=Santosh.Shukla@cavium.com; ",
        "From": "Santosh Shukla <santosh.shukla@caviumnetworks.com>",
        "To": "dev@dpdk.org,\n\tolivier.matz@6wind.com",
        "Cc": "jerin.jacob@caviumnetworks.com, john.mcnamara@intel.com,\n\tthomas@monjalon.net, hemant.agrawal@nxp.com,\n\tSantosh Shukla <santosh.shukla@caviumnetworks.com>",
        "Date": "Thu, 31 Aug 2017 12:07:18 +0530",
        "Message-Id": "<20170831063719.19273-10-santosh.shukla@caviumnetworks.com>",
        "X-Mailer": "git-send-email 2.11.0",
        "In-Reply-To": "<20170831063719.19273-1-santosh.shukla@caviumnetworks.com>",
        "References": "<20170824132903.32057-1-santosh.shukla@caviumnetworks.com>\n\t<20170831063719.19273-1-santosh.shukla@caviumnetworks.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[111.93.218.67]",
        "X-ClientProxiedBy": "PN1PR01CA0089.INDPRD01.PROD.OUTLOOK.COM (10.174.144.157)\n\tTo MWHPR07MB3104.namprd07.prod.outlook.com (10.172.95.10)",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "61167b40-89c0-4f16-b25e-08d4f03ae1ea",
        "X-Microsoft-Antispam": "UriScan:; BCL:0; PCL:0;\n\tRULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);\n\tSRVR:MWHPR07MB3104; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; MWHPR07MB3104;\n\t3:yJGHEdbhdnLmKO/HLCNu1dEVDYtG3vXY4jFEOveYfe8WeTmS/MsEmoAT6I9aPi6XyAcO5O60BlozTnh084AoP/yysGaQyiSpL9r8vKdXYFE04xXFqSTdjVq39Xgqe8PxGirTO9SFL/Y/+8oJ1AZ/DA08zjQu581WmPuJcwwn5oN3o5lAHh+ve3FIGauLqwQinR9MU04DmL0LbUVha2bkqFy/VHVA3kH1jX5ZkxlfcwSPgO3ZntoP0Ip1hHg6C3wI;\n\t25:M6QHNlzZOP1raagIwpUuOjH4ySlNbQTDd8n2xnWJEoygfbWPHkMBE/FbQa00lCuXuujh2VPhWq1fmiZuwkBH54R1qOYy76gURM/iHEwcQDftyQQyy8cRLlMI0BgKep+kyu6oJEEwGC6VerabZuDA5uKwQH2m+kEc+Ip1Y1auncAVczN8S4biq7g63FLjP7DzouFnhB9L5Qx6Gd/Uqmakbhl9gtlSPZIxzgDdL0ak33wPuwHk+K8ImtmcrGkaTkAE8jbVQSegbOPrKyb2307QVE+uTxbI6idblp1M8+uoR/Jxzd8xNGz1X5ly7RZcxOP82EoQCdCx2sagpv1u+ZSugg==;\n\t31:Wy+IwCTSO6+ZkewrO2K/BoNNQjHqJe6ee+R/Ey5mfdSgggL6SHN2H/D4EX5lrTyoWP3Rl/XP8XcSNBwO49mKqSgrHGod3A0RVglvsUraz6XOojRAUGp+S1reMmY9QvciUF9uzmteAm0XSU/6emG6695ubyBEngTnh2J7yIghFlSlF8uujSye8URGVb0tC5gUttzBMrHkGY/3ms6FsnuZlxl7NBVq7PahgkK6dCGfclQ=",
            "1; MWHPR07MB3104;\n\t20:wcQnon7CRdsgikn/0PPCko693Bk0pw9lOJ971PP6s+2h9GSVjULQ53PGt8obXw0pdwBLJ/fraCH9dujP/mdozSFi/WKTCvGUsVZOF+fd01AcXLvHYaiIgyvQ3BoX4IAE/2jqfwzUG12P5vWJSjitz7Ec5Y68evf0Ld/y+ztsk2XDI7M50hD1IKYfC4g9G37sqCa0uDhWOJrPcBzoAW5vzm86eKoM/0XVfX6cTicBFV0VCktpsFxGMtNGQ0iOVAcJ3Av8Y3zamcwQc1NAv9m1264BVGBCI36zLdA4tSmbzWHRnQoLgdTqivHQ3yMN2aQ3yoghq+zui5hLAl6U+JTT32xF3FJk9TEDZh8VAub5GHLce9NigEi7mhFq7ZbEz/CyvA4+FpUCY6LKLlvmN1wbLu01KzbR6sPn5p1gF9azb952X3KUWKnJ19u9JoO9BLa0gRhaN+0cMzsZQaXFXKkwVMxjfu2psmnHCTOCejV9xxwdaHtBiuKlHp4vFp+xJaDKZNMGkbDcCHoha7upqJItNTDgtvvWj718dAQnkPS+eU51/oh1XJR431agGIxqJAUNxvyA6lFb+NXo9N7Jx0+Fm7Ew3dTIV9GWattFN3pSnTQ=;\n\t4:YF/U5YIzX8+ElYhSQwH6BD1X2UsFgOLmboVZBoSbS5pYfdb68+27e81Tc3JfIaY3BDgSuSFxAHy6385Dtliwk1KsiIFXL1XjbXSQbK3kDOY/OlnCUF4S+OnhkPldkceqW6GQvnDeHO8oS+fHkuewjWKtoJW35rzBmGx0W53n6aNL+ace3/0fqrYq8lwJ/O5/gsA3X+9rSYVlfw/5U/w9czGK5A5NYI5+OEOM3DfVQzXjp0S7iVMH7QY745J4Ur8A",
            "=?us-ascii?Q?1; MWHPR07MB3104;\n\t23:V0h2T2ZdPJZ9XanwleImw7AiRJjKGWaUcL4VTwY/4?=\n\tZCHPSygWgk0hOdVH2jZCL+Q9wbqjhmk3iY8fUtGnFdmHcMvuw9uIQqJ4EdReOwvCURCve78GMEgYwFlSfTh8Ha6anrWOrEcY97xq5MmxyFERix2pjWppRaiABKxs9hoP219E0qDO7pbcYldW53NYx37PSAunqEWH+k3ecnCE8lRcjDtd4V4CGM3SI9GCcj9S1hgN4n75ERCTSg5pRRLaDlDC/WP7yeOyx8JjnIAq5QSP03lxQcUN4kafICDC7qwIvxrFBOULPIFDg/yrJYiOGs9ETwjOozdOUNkcchJsWEyFLzItlQApV0l0dI0OpdBJYF1KCzT+6jUQWzdWGwZh07xLm5V7/O92RjT/w67gQHrDtTvk8NvompOIbnmhALP3KLbbL5KmVDXN1/Os3qfgLR0uRhk//7xvQef6rV4y0yDQKq46eDeFliccWZ+jiD5fUQvmGXHyNJRgg4vhwre2ve6sDoQ60c3xwqWzG3rpfa6DDgFBHp9fnmw5MfKGOxiQd3qmqCMgvnvn5SNSrqRlCAmcOVHMQ90DlvJeJxo2TOia58e7AKMSwuwvK8Ib0Iag718RnEBMLdwjTfvBpGXgydB8y0MqjA91y/sosyqIOFKl0GQQB/adKOZfFp5MsJ4ve++I8ZGQVvx3lYbvqKsLDI6gbXKjVibV+Nhd42+BeYkn3PW5W2Xmw7lGTDPXjhl77RRpCQPcfsv0LXFHSwQVzmTawt3XH4AVheltlqTMhhuc7io69nO4E90QcBvxplmO9dLoG9lCtSD8A3rhAE4sq7tXYyeYagqQ2I82eBD+F29d2ebVCj16a/BoeoNYQo7AmZXhPIG1LJL3sazOXozj/qa9P+7g1TV0VY4UEbacTiiIQEK2WXwFXMxdmPBQUdiozgYzGhkHc0CmkwET1t0M9YV8SfiLow2dC7axzB9bj97mdYegIjWmSGg+t4stZ6gxYKWvxbLXQaiR49fAUpmevib1nti6PB7n4jrQhvWn+xMQEPhOKXST7l+WNVMKS9UuBTDWvMg4JHCz+wni8L7V/jj4ymMLlXkr4BKW8CvwwXnazHklplGMyMxoJaf/CT2uFim682LjZDpCz4rf0pqo/8H6ZP+ByCxyIaS+CmnW/57Pg==",
            "1; MWHPR07MB3104;\n\t6:1Kt51Wo2m+vyZuY2m1vY+sxnsU0f3g26aLVm3dULsYFcmx8RcDv7An2cyXU/Xa7J2fVcXAoLYxZO+Sup9XhfRTJlu6htf/9SsW/JC1oTZBdEzCsDbPc58wJfXhYtPuzUEwFx0mxH5INz6zlpuviL5dg47DSb9y1rJOQZzkCEMyAzSbc6v35yujg+2Ge1l1Sqhe1q/+RkcsB7xch/rUuatru2lN94Mbcw6d6i4YKyH7SD89ami7zGZA7kfAVpXg3SZNGMy+kvNsJZzi4yNwuMtrVmyyVvp3s4gBwJDxEusV9s0xd0nMtX3w/mS+DTSqvRYcwYzlclRv7uspVowKCgSQ==;\n\t5:DlRmFh7MsZt+/Z8pwZcPUmRq9HUxTySGcfZmXYxih594GPjp+ou42xxevl0JsjrzRYi58L3kfXYuL9EIdoYxU1Bg3WgYxYG31oHNF0uTB21eB4wh5ZzO6Mce39eK2mNUOuEAnc9rqU+EYul8F1cKRA==;\n\t24:PvWitRYZhG8bfeQVAh3+cYe0ETrAVJ/Y+CawFulSs4QSven0h0NeEsVHr1fhQU7g6YRrKbSUG6Rlzn/sOL6BDGIed2hEGB4kj6cvsr8G8Tg=;\n\t7:dctA9PvfNyzVEiWGLVhzzvGBLW6gMCSSrrDJcnhXaY1sYE0DtKCPxbLn2DuklY7psJ19M1ySu4M5Wz0qy5DDrb709la4n+LFjvxKj712HBcFjFkAs36brErrvKdMfaEbuwykClFgXv+1/G4sl17WA4EWs9GBnWK7sJPrJIL+UHaluiaXlkCTUeIcVH+btqHOFin0NZ+qx6kv+DEvNWtpZ4SbnOY18M8/5PDZoHo4D2k="
        ],
        "X-MS-TrafficTypeDiagnostic": "MWHPR07MB3104:",
        "X-Exchange-Antispam-Report-Test": "UriScan:;",
        "X-Microsoft-Antispam-PRVS": "<MWHPR07MB310402D414FFA8BA214E1D0AEA9D0@MWHPR07MB3104.namprd07.prod.outlook.com>",
        "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(10201501046)(100000703101)(100105400095)(93006095)(3002001)(6041248)(20161123564025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123562025)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);\n\tSRVR:MWHPR07MB3104; BCL:0; PCL:0;\n\tRULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);\n\tSRVR:MWHPR07MB3104; ",
        "X-Forefront-PRVS": "04163EF38A",
        "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10009020)(6009001)(6069001)(199003)(189002)(66066001)(6486002)(33646002)(50226002)(47776003)(6506006)(68736007)(36756003)(50986999)(101416001)(4326008)(76176999)(189998001)(25786009)(15650500001)(50466002)(48376002)(7736002)(5003940100001)(6512007)(105586002)(8656003)(478600001)(6666003)(2906002)(110136004)(107886003)(305945005)(53936002)(8676002)(42186005)(5009440100003)(72206003)(42882006)(2950100002)(1076002)(97736004)(81166006)(81156014)(8936002)(3846002)(6116002)(5660300001)(106356001);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:MWHPR07MB3104; H:localhost.localdomain;\n\tFPR:; \n\tSPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; ",
        "Received-SPF": "None (protection.outlook.com: cavium.com does not designate\n\tpermitted sender hosts)",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-OriginatorOrg": "caviumnetworks.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "31 Aug 2017 06:38:22.5887\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "711e4ccf-2e9b-4bcf-a551-4094005b6194",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "MWHPR07MB3104",
        "Subject": "[dpdk-dev] [PATCH v2 09/10] mempool/octeontx: implement pool update\n\trange",
        "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": "Add support for update range ops in mempool driver.\n\nAllow more than one HW pool when using OcteonTx mempool driver:\nBy storing each pool information to the list and find appropriate\nlist element by matching the rte_mempool pointers.\n\nSigned-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>\nSigned-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>\n---\n drivers/mempool/octeontx/rte_mempool_octeontx.c | 73 ++++++++++++++++++++++++-\n 1 file changed, 71 insertions(+), 2 deletions(-)",
    "diff": "diff --git a/drivers/mempool/octeontx/rte_mempool_octeontx.c b/drivers/mempool/octeontx/rte_mempool_octeontx.c\nindex fd3e5af07..4885191d7 100644\n--- a/drivers/mempool/octeontx/rte_mempool_octeontx.c\n+++ b/drivers/mempool/octeontx/rte_mempool_octeontx.c\n@@ -36,17 +36,49 @@\n \n #include \"octeontx_fpavf.h\"\n \n+/*\n+ * Per-pool descriptor.\n+ * Links mempool with the corresponding memzone,\n+ * that provides memory under the pool's elements.\n+ */\n+struct octeontx_pool_info {\n+\tconst struct rte_mempool *mp;\n+\tuintptr_t mz_addr;\n+\n+\tSLIST_ENTRY(octeontx_pool_info) link;\n+};\n+\n+SLIST_HEAD(octeontx_pool_list, octeontx_pool_info);\n+\n+/* List of the allocated pools */\n+static struct octeontx_pool_list octeontx_pool_head =\n+\t\t\t\tSLIST_HEAD_INITIALIZER(octeontx_pool_head);\n+/* Spinlock to protect pool list */\n+static rte_spinlock_t pool_list_lock = RTE_SPINLOCK_INITIALIZER;\n+\n static int\n octeontx_fpavf_alloc(struct rte_mempool *mp)\n {\n \tuintptr_t pool;\n+\tstruct octeontx_pool_info *pool_info;\n \tuint32_t memseg_count = mp->size;\n \tuint32_t object_size;\n \tuintptr_t va_start;\n \tint rc = 0;\n \n+\trte_spinlock_lock(&pool_list_lock);\n+\tSLIST_FOREACH(pool_info, &octeontx_pool_head, link) {\n+\t\tif (pool_info->mp == mp)\n+\t\t\tbreak;\n+\t}\n+\tif (pool_info == NULL) {\n+\t\trte_spinlock_unlock(&pool_list_lock);\n+\t\treturn -ENXIO;\n+\t}\n+\n \t/* virtual hugepage mapped addr */\n-\tva_start = ~(uint64_t)0;\n+\tva_start = pool_info->mz_addr;\n+\trte_spinlock_unlock(&pool_list_lock);\n \n \tobject_size = mp->elt_size + mp->header_size + mp->trailer_size;\n \n@@ -77,10 +109,27 @@ octeontx_fpavf_alloc(struct rte_mempool *mp)\n static void\n octeontx_fpavf_free(struct rte_mempool *mp)\n {\n+\tstruct octeontx_pool_info *pool_info;\n \tuintptr_t pool;\n \n \tpool = (uintptr_t)mp->pool_id;\n \n+\trte_spinlock_lock(&pool_list_lock);\n+\tSLIST_FOREACH(pool_info, &octeontx_pool_head, link) {\n+\t\tif (pool_info->mp == mp)\n+\t\t\tbreak;\n+\t}\n+\n+\tif (pool_info == NULL) {\n+\t\trte_spinlock_unlock(&pool_list_lock);\n+\t\trte_panic(\"%s: trying to free pool with no valid metadata\",\n+\t\t    __func__);\n+\t}\n+\n+\tSLIST_REMOVE(&octeontx_pool_head, pool_info, octeontx_pool_info, link);\n+\trte_spinlock_unlock(&pool_list_lock);\n+\n+\trte_free(pool_info);\n \tocteontx_fpa_bufpool_destroy(pool, mp->socket_id);\n }\n \n@@ -167,6 +216,26 @@ octeontx_fpavf_get_capabilities(struct rte_mempool *mp)\n \treturn 0;\n }\n \n+static void\n+octeontx_fpavf_update_range(const struct rte_mempool *mp,\n+\t\t\t    char *vaddr, phys_addr_t paddr, size_t len)\n+{\n+\tstruct octeontx_pool_info *pool_info;\n+\n+\tRTE_SET_USED(paddr);\n+\tRTE_SET_USED(len);\n+\n+\tpool_info = rte_malloc(\"octeontx_pool_info\", sizeof(*pool_info), 0);\n+\tif (pool_info == NULL)\n+\t\treturn;\n+\n+\tpool_info->mp = mp;\n+\tpool_info->mz_addr = (uintptr_t)vaddr;\n+\trte_spinlock_lock(&pool_list_lock);\n+\tSLIST_INSERT_HEAD(&octeontx_pool_head, pool_info, link);\n+\trte_spinlock_unlock(&pool_list_lock);\n+}\n+\n static struct rte_mempool_ops octeontx_fpavf_ops = {\n \t.name = \"octeontx_fpavf\",\n \t.alloc = octeontx_fpavf_alloc,\n@@ -175,7 +244,7 @@ static struct rte_mempool_ops octeontx_fpavf_ops = {\n \t.dequeue = octeontx_fpavf_dequeue,\n \t.get_count = octeontx_fpavf_get_count,\n \t.get_capabilities = octeontx_fpavf_get_capabilities,\n-\t.update_range = NULL,\n+\t.update_range = octeontx_fpavf_update_range,\n };\n \n MEMPOOL_REGISTER_OPS(octeontx_fpavf_ops);\n",
    "prefixes": [
        "dpdk-dev",
        "v2",
        "09/10"
    ]
}