get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 28465,
    "url": "https://patches.dpdk.org/api/patches/28465/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20170907153042.30890-6-santosh.shukla@caviumnetworks.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": "<20170907153042.30890-6-santosh.shukla@caviumnetworks.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20170907153042.30890-6-santosh.shukla@caviumnetworks.com",
    "date": "2017-09-07T15:30:39",
    "name": "[dpdk-dev,v6,5/8] mempool: get the mempool capability",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "61d8235c9c223191d8ec1097c42adf02ebf1a500",
    "submitter": {
        "id": 480,
        "url": "https://patches.dpdk.org/api/people/480/?format=api",
        "name": "Santosh Shukla",
        "email": "santosh.shukla@caviumnetworks.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20170907153042.30890-6-santosh.shukla@caviumnetworks.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/28465/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/28465/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 A194E199C2;\n\tThu,  7 Sep 2017 17:31:43 +0200 (CEST)",
            "from NAM03-BY2-obe.outbound.protection.outlook.com\n\t(mail-by2nam03on0058.outbound.protection.outlook.com [104.47.42.58])\n\tby dpdk.org (Postfix) with ESMTP id 960DD199B9\n\tfor <dev@dpdk.org>; Thu,  7 Sep 2017 17:31:42 +0200 (CEST)",
            "from localhost.localdomain (14.140.2.178) by\n\tMWHPR07MB3101.namprd07.prod.outlook.com (10.172.95.7) 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, 7 Sep 2017 15:31:38 +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=KPpIxxom9bQ/dgYFFPlKgDnWeS0ucCF+B+HV2qZTmDQ=;\n\tb=ZR0N1kVGK3EW+Zrlt+jKbMKuKU5XJlEzDtbjOFfi2ROKb0jUPmxhLgngcTVSsx+EmoJJAW9/2p0N+/g4h1sM2aIkXarFI5jOEhY3AUq0mCcwp46fDlvej9WK9OLargY1YnBafpW0t96Fh8CRtdWpxafv7C8wkhdqOf5lNmF0B3M=",
        "Authentication-Results": "spf=none (sender IP is )\n\tsmtp.mailfrom=Santosh.Shukla@cavium.com; ",
        "From": "Santosh Shukla <santosh.shukla@caviumnetworks.com>",
        "To": "olivier.matz@6wind.com,\n\tdev@dpdk.org",
        "Cc": "thomas@monjalon.net, jerin.jacob@caviumnetworks.com,\n\themant.agrawal@nxp.com,\n\tSantosh Shukla <santosh.shukla@caviumnetworks.com>",
        "Date": "Thu,  7 Sep 2017 21:00:39 +0530",
        "Message-Id": "<20170907153042.30890-6-santosh.shukla@caviumnetworks.com>",
        "X-Mailer": "git-send-email 2.14.1",
        "In-Reply-To": "<20170907153042.30890-1-santosh.shukla@caviumnetworks.com>",
        "References": "<20170906112834.32378-1-santosh.shukla@caviumnetworks.com>\n\t<20170907153042.30890-1-santosh.shukla@caviumnetworks.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[14.140.2.178]",
        "X-ClientProxiedBy": "BM1PR01CA0072.INDPRD01.PROD.OUTLOOK.COM (10.174.208.140)\n\tTo MWHPR07MB3101.namprd07.prod.outlook.com (10.172.95.7)",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "d88ae6e3-d50b-44de-31a8-08d4f6058942",
        "X-Microsoft-Antispam": "UriScan:; BCL:0; PCL:0;\n\tRULEID:(300000500095)(300135000095)(300000501095)(300135300095)(300000502095)(300135100095)(22001)(2017030254152)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);\n\tSRVR:MWHPR07MB3101; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; MWHPR07MB3101;\n\t3:CeWHKNt4/0GLnGoBuL14RrH3lfXAkJnL8pwxJJtQfN7L8dXAeoWNvzlsIDSY9UQSmMSDRveGsB+ln4LzmRczXxNvPBpHImhVo12hLKij51XQFYTiCco8h7Nv9vc097bMToKQ3esUyOrILFt/143W6PW0NNn935D2qlnmOmFYAWIaxRC30/ci6D89Rp/yCPZM+Chxtmhtwstv3m1nX4Je4Tj/Y49Wc9gxWvZ4TCppSRpHY3c7LpNdIjs3qpvtoxAg;\n\t25:ZSc8pWjzNRUhmPEg58uB8CMRABqcaX6oBQfImaGSclFX7zBeULTyBMaCDD5RTJq2msufCrZyfB0RUFRr2+gW7O5n/9JTUT5A+wgs2LPuH+ZYn2UbudtC/3NC4JWpocjWLvkExV8GXbmIwDrL8JXbztgKvkwe3BGZff758utT5xZOIPHS3Gw6m0lfuWRIMCAB0FyJv8X3WnFg3Tvwv+NN+ayCw/6i/VKmODO29/rfiGg4PAxpvrjQ58kKQ2csvY6lN1zdeMnp9We2uncD21aDfdCwd4F4O1UpObseW9lK0E98oEwqrNu/IGR2g0GamBYute8pWRI0LVLoBcnq2XIjwA==;\n\t31:p5RMEfSu5k+LXG9H1HW3aNI632gqoA2Y8Xsu0VIpDm1kn+9klcAIiQnfL2YSSUbo8bCUwgPc08ocESXWs5ltPtgTj6eH2c2LUTUNQXnsDG50Fpcmrj1kTe9M83DVy3d7x5md/I8cMUOuW5NDoS2gHK2coNwlzYTNciTIDnxL5pJcEM10UaysME73iIPm1YS8hLx/QFMV2LfTNMFSDKVh41Yjvle/vp813fAidOgh6H8=",
            "1; MWHPR07MB3101;\n\t20:KytIHICZAxUlHIBFxqrv5mGA1eiSeIugvdPJ2FcwyJHqXo5KVc59pS3N+wVCpkbsEZE8WGEckRfePaU4ad0aywJf0Hk8vDsQAS4e6/ux1qo4Cl/H2ewReXLNoJETtDqiJt0t1uKk4LSvVDp6HntSNF6NrtNVeL3i3JNmKbDAqRA+FFSRpc/peQcRzZ1Yv+k11/vy3YcHw28cTx3qNP1sFgaWc6T/CS9rtaw/Fj+CHsY51RL3dpaDFAEKnWfVmmDDU9JvCOEywVjwEqIkJO9gpK7lUZDvsp7pbsjTTy0F008586w8CotyDQF8OwBVqW8Vw7j7hX1ononORnS0E5OoTjhvg7Hj7MUB4b5kvcTz14F4esAZ/GXPt40NqHsM9UjA7KQE5vIZA1aCaUnShe/WmUy4GuEwk6sxlbh5RQ/6WkpUw1UOjKaUm+KvwgE4yjt/iubhcOHilBjDx6vKk9BkV6Xp17Liz0AyUPyTyJZztu/v9d+TOD55sGojcjAvBr6J0bHekQ+WxLkN2SB+m20M8++PxjfKcZmy4z1SC00zoRkVkifFeXeKWRZIGF6r54+xvRdmnS7i7J5N8UHNs+KSHRsOQmpDCgR0HO6maNu7WlQ=;\n\t4:u50Obj5+C2a1YPGfEvA5sgdU0WIrWGlOc6e9ybJ0t7C2s3W0R2itsdpuIRF4TKZoZDyUpnsw/0B+vWcw8odUCJ0XpEqfzQOpjl/vf6/hbtoc7C9mQtf8ob60QCzcufxuBTe678IiM8RuhMU+17wt/hY6V2ouM5uovjTmlm3hNzMAhpPi6VlSHwLxfL9Tt8CmRBNQ+HnoZPE1oQopLn3OG8+vI2YdIKR6sEiFOIpMkawlHNGDc1iIAtH17epLuk4h",
            "=?us-ascii?Q?1; MWHPR07MB3101;\n\t23:uaHKdX5zOh5p71KXfZZGR91KGrN58R5gfw7UJ0As+?=\n\tI8mX4CtnqJ8E+HMjX8AhMpJgsqH1jQzV1ctyqVAejYVvku1AQlNQZRCqB+qRgIymZTwU371tE44xkp/mdLHZ8n8m1+QxXbHxP/FD2BFUzu4Xr+61+thrQCkV2bc+0oSY1/ScdPTb8HPv5BvkFSssbuxHgmSG4/rpA254lqgtybw3bO3wLHSCOmtQvCkh92IP6fZZRgiAFsD95U0JaRsnGF156t7IlPXzZ5zZMJyN+WXRTg3XiFu6zm+6ldr2czf+XYu8cbOqArqAmlazFvcGjHIFXj4+q/Rud6TpkHt1ME4pyTCcRWPWWby04mDb5+4jEhRmBmTlQEoLcuPeBdzDJngkI/M+KAt7yEtuTsgrSg2+lB59rB8l9/WU1COgKLee4bAhUtQUBtaVqH2+Ek+Gn/4d9eaw+sPqvEirgJtudX8glsddBX1Ed5BbiF7OTcS5PDd79MVkBNYjNLjGP5B3vBk0YWAj99a1+6GS9YGpvi/JQcEn9QD5fvFue2kFV7vclNf/4+QsWkAfog7MTLG47Xe35XYbOvKGvgl15g0gst/T5Ss2XEEbw0mwVHz8FehMZJc1UYuZoGVBuAY2hiwoXrqUstDtnvhcIjf46FTjE2P/mwLw2yqQHAoVPoc+NWioxo9Fax+7s4Ekp5GcTJ4ULqFDHk/GN6Os3k/OuGwNuxVhUZGRd8QJG9kE4oyMfFEFFcXmLPhmOKnUuGPzZo79RB1SEOfW0b+VBWtCDaZxSApZlgtCZSkcsCbCAModxu4VIon6sqSIzvlUCrezfBfpdXY3KVKcCQYlAExZWd7z2q1NS82N64EKuDz51d7idjZXqi4M0vW5V+sfRt5HE9UjnBny2X/Ncqgewu1VVipOJxjSKmAYeP6MKHiHkUA+ExmJRkCdavQ49S/Dq38Es2JPy/T4VQw8BRu4gMsiEqBMgsDMDGlw+dmGRwtk/5va/aiVqK2ffXOSVeRDh3b2KKzJ6pViuks7BVyk2mKrdo5/8/+rA6BhLPS7+zh0fiTHVaxFcEvSYrhXJz4IK6fMrea6MoX+hq1Ma2AOcsdCj7TLcng9LHHlJCg2WALqs1Tf0a5914x8iJs1vF4rUuNDyT2tjPnE+iutz/5ryG7ZHiBY2oHLCN5xEhKLvp1V668LcL5gdYHiPoWWmhbnKxZHL5LWt40",
            "1; MWHPR07MB3101;\n\t6:63G54aWqf1y/8zNuaQQpecxE75DN7jhUf9idOR3UksjNlZUPi2+BuoCKOeVqLNUua9EScrBV6SdNPUqZv+Eh+ISmZB/3QkhunCDeZHkng3h5e+zzliTw255chKPt3RfGLwTEdxWWwPwooLNCNFAuWuJQ9dwh1uVoKdkwlnC592l1pvcoqCptKdpaRCh8rrisNQAEAoGNVTKQ/T+WVXlpGKFUEQG90vfOkDsRWiyXpstZ5uhM/Qe8OSg9sFLLA8oUhdNM63f4JLP+EBldkwiGG61USdYw+rbnw4Y9pRdBjG0C3wDjf2uqcjPeakbMbZrBBjw04ocVGzKXpVifzktWGw==;\n\t5:xjxqzDcsEI/FWNTxFz5ScM++YAGQLdBK2UJbhCJumx39C8DLE2PcroQBkl5Wnf+DjEq2JtCDiJIU8CysBJOvdWIQLZzPkIxJ4iJXvVgbb8uXBTw3uzLWS50rjrqSAhUnWNuJ2BUblTCwnnZnEdVTHw==;\n\t24:0sNgAQPtYrvrI4K6LLEXsOJriOTWkyt2Z+NmUNBpFKzhDXiizQd9PlVCZuGuQdhTo8XAYOkxFg3oPEkI3ohpqCWcRacPTQFJ1pEHhkWb1jc=;\n\t7:rCgpjLrr4LTq0qAQbMoYzxFdXkopthzIxzUwNNpb6yvixLW49fZH2bkcdH05Dl30cBks9FCGUL+G4qYb8cbz1go8lhHIwNXEBeIhxDKYobR6KyF2kStcPCGlZUaBRcmCzGXYvKPgjTFtQg/s7DLhi+UmWOeFNow/kCe8ocydCxvXlow8HVQBaeajLFjxExNtiyzf/naPmm96J0nDVOjEKgIqrSEwAtneZo5/hkz6qDM="
        ],
        "X-MS-TrafficTypeDiagnostic": "MWHPR07MB3101:",
        "X-Exchange-Antispam-Report-Test": "UriScan:;",
        "X-Microsoft-Antispam-PRVS": "<MWHPR07MB310196E77B7F8F6A68509FF8EA940@MWHPR07MB3101.namprd07.prod.outlook.com>",
        "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(100000703101)(100105400095)(93006095)(3002001)(10201501046)(6041248)(20161123555025)(20161123558100)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123560025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);\n\tSRVR:MWHPR07MB3101; BCL:0; PCL:0;\n\tRULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);\n\tSRVR:MWHPR07MB3101; ",
        "X-Forefront-PRVS": "04238CD941",
        "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10009020)(6069001)(6009001)(189002)(199003)(25786009)(5660300001)(966005)(50986999)(76176999)(42186005)(106356001)(105586002)(4326008)(33646002)(8656003)(66066001)(53376002)(53936002)(36756003)(107886003)(110136004)(8936002)(50226002)(305945005)(6306002)(8676002)(7736002)(5003940100001)(1076002)(6512007)(47776003)(81156014)(3846002)(50466002)(6116002)(5009440100003)(101416001)(68736007)(48376002)(97736004)(81166006)(189998001)(2906002)(72206003)(6506006)(2950100002)(42882006)(478600001)(6486002)(110426004)(15583001);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:MWHPR07MB3101; H:localhost.localdomain;\n\tFPR:; \n\tSPF:None; PTR:InfoNoRecords; MX:1; A: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": "07 Sep 2017 15:31:38.1668\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "711e4ccf-2e9b-4bcf-a551-4094005b6194",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "MWHPR07MB3101",
        "Subject": "[dpdk-dev] [PATCH v6 5/8] mempool: get the mempool capability",
        "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": "Allow the mempool driver to advertise his pool capabilities.\nFor that pupose, an api(rte_mempool_ops_get_capabilities)\nand ->get_capabilities() handler has been introduced.\n- Upon ->get_capabilities() call, mempool driver will advertise\nhis capabilities to mempool flags param.\n\nSigned-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>\nSigned-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>\n---\nv5 --> v6:\n- Fixed typos from Capability to capabilities (suggested by Olivier)\n- Now mp->flags |= flag happens at mempool layer (suggested by Olivier)\n- For -ENOTSUP return type - patch ignore and allows not supported message,\nFor other error value <0, returns from rte_mempool_populate_default().\n- Updated API error description for same.\n\nFor history: refer [1].\n[1] http://dpdk.org/dev/patchwork/patch/28416/\n\nv4 --> v5:\n- Added flags as second param in get_capability api (suggested by Olivier)\n- Removed 80 char warning. (suggested by Olivier)\n- Upadted API description, now explicitly mentioning that update as a\n  Or'ed operation by mempool handle. (suggested by Olivier)\n\nrefer [2].\n[1] http://dpdk.org/dev/patchwork/patch/27598/\n\n lib/librte_mempool/rte_mempool.c           | 13 +++++++++++++\n lib/librte_mempool/rte_mempool.h           | 27 +++++++++++++++++++++++++++\n lib/librte_mempool/rte_mempool_ops.c       | 15 +++++++++++++++\n lib/librte_mempool/rte_mempool_version.map |  7 +++++++\n 4 files changed, 62 insertions(+)",
    "diff": "diff --git a/lib/librte_mempool/rte_mempool.c b/lib/librte_mempool/rte_mempool.c\nindex 005240042..92de39562 100644\n--- a/lib/librte_mempool/rte_mempool.c\n+++ b/lib/librte_mempool/rte_mempool.c\n@@ -522,12 +522,25 @@ rte_mempool_populate_default(struct rte_mempool *mp)\n \tsize_t size, total_elt_sz, align, pg_sz, pg_shift;\n \tphys_addr_t paddr;\n \tunsigned mz_id, n;\n+\tunsigned int mp_flags;\n \tint ret;\n \n \t/* mempool must not be populated */\n \tif (mp->nb_mem_chunks != 0)\n \t\treturn -EEXIST;\n \n+\t/* Get mempool capabilities */\n+\tmp_flags = 0;\n+\tret = rte_mempool_ops_get_capabilities(mp, &mp_flags);\n+\tif (ret == -ENOTSUP)\n+\t\tRTE_LOG(DEBUG, MEMPOOL, \"get_capability not supported for %s\\n\",\n+\t\t\t\t\tmp->name);\n+\telse if (ret < 0)\n+\t\treturn ret;\n+\n+\t/* update mempool capabilities */\n+\tmp->flags |= mp_flags;\n+\n \tif (rte_xen_dom0_supported()) {\n \t\tpg_sz = RTE_PGSIZE_2M;\n \t\tpg_shift = rte_bsf32(pg_sz);\ndiff --git a/lib/librte_mempool/rte_mempool.h b/lib/librte_mempool/rte_mempool.h\nindex 85eb770dc..d251d4255 100644\n--- a/lib/librte_mempool/rte_mempool.h\n+++ b/lib/librte_mempool/rte_mempool.h\n@@ -389,6 +389,12 @@ typedef int (*rte_mempool_dequeue_t)(struct rte_mempool *mp,\n  */\n typedef unsigned (*rte_mempool_get_count)(const struct rte_mempool *mp);\n \n+/**\n+ * Get the mempool capabilities.\n+ */\n+typedef int (*rte_mempool_get_capabilities_t)(const struct rte_mempool *mp,\n+\t\tunsigned int *flags);\n+\n /** Structure defining mempool operations structure */\n struct rte_mempool_ops {\n \tchar name[RTE_MEMPOOL_OPS_NAMESIZE]; /**< Name of mempool ops struct. */\n@@ -397,6 +403,10 @@ struct rte_mempool_ops {\n \trte_mempool_enqueue_t enqueue;   /**< Enqueue an object. */\n \trte_mempool_dequeue_t dequeue;   /**< Dequeue an object. */\n \trte_mempool_get_count get_count; /**< Get qty of available objs. */\n+\t/**\n+\t * Get the mempool capabilities\n+\t */\n+\trte_mempool_get_capabilities_t get_capabilities;\n } __rte_cache_aligned;\n \n #define RTE_MEMPOOL_MAX_OPS_IDX 16  /**< Max registered ops structs */\n@@ -508,6 +518,23 @@ rte_mempool_ops_enqueue_bulk(struct rte_mempool *mp, void * const *obj_table,\n unsigned\n rte_mempool_ops_get_count(const struct rte_mempool *mp);\n \n+/**\n+ * @internal wrapper for mempool_ops get_capabilities callback.\n+ *\n+ * @param mp [in]\n+ *   Pointer to the memory pool.\n+ * @param flags [out]\n+ *   Pointer to the mempool flags.\n+ * @return\n+ *   - 0: Success; The mempool driver has advertised his pool capabilities in\n+ *   flags param.\n+ *   - -ENOTSUP - doesn't support get_capabilities ops (valid case).\n+ *   - Otherwise, pool create fails.\n+ */\n+int\n+rte_mempool_ops_get_capabilities(const struct rte_mempool *mp,\n+\t\t\t\t\tunsigned int *flags);\n+\n /**\n  * @internal wrapper for mempool_ops free callback.\n  *\ndiff --git a/lib/librte_mempool/rte_mempool_ops.c b/lib/librte_mempool/rte_mempool_ops.c\nindex 5f24de250..f2af5e5bb 100644\n--- a/lib/librte_mempool/rte_mempool_ops.c\n+++ b/lib/librte_mempool/rte_mempool_ops.c\n@@ -37,6 +37,7 @@\n \n #include <rte_mempool.h>\n #include <rte_errno.h>\n+#include <rte_dev.h>\n \n /* indirect jump table to support external memory pools. */\n struct rte_mempool_ops_table rte_mempool_ops_table = {\n@@ -85,6 +86,7 @@ rte_mempool_register_ops(const struct rte_mempool_ops *h)\n \tops->enqueue = h->enqueue;\n \tops->dequeue = h->dequeue;\n \tops->get_count = h->get_count;\n+\tops->get_capabilities = h->get_capabilities;\n \n \trte_spinlock_unlock(&rte_mempool_ops_table.sl);\n \n@@ -123,6 +125,19 @@ rte_mempool_ops_get_count(const struct rte_mempool *mp)\n \treturn ops->get_count(mp);\n }\n \n+/* wrapper to get external mempool capabilities. */\n+int\n+rte_mempool_ops_get_capabilities(const struct rte_mempool *mp,\n+\t\t\t\t\tunsigned int *flags)\n+{\n+\tstruct rte_mempool_ops *ops;\n+\n+\tops = rte_mempool_get_ops(mp->ops_index);\n+\n+\tRTE_FUNC_PTR_OR_ERR_RET(ops->get_capabilities, -ENOTSUP);\n+\treturn ops->get_capabilities(mp, flags);\n+}\n+\n /* sets mempool ops previously registered by rte_mempool_register_ops. */\n int\n rte_mempool_set_ops_byname(struct rte_mempool *mp, const char *name,\ndiff --git a/lib/librte_mempool/rte_mempool_version.map b/lib/librte_mempool/rte_mempool_version.map\nindex f9c079447..3c3471507 100644\n--- a/lib/librte_mempool/rte_mempool_version.map\n+++ b/lib/librte_mempool/rte_mempool_version.map\n@@ -41,3 +41,10 @@ DPDK_16.07 {\n \trte_mempool_set_ops_byname;\n \n } DPDK_2.0;\n+\n+DPDK_17.11 {\n+\tglobal:\n+\n+\trte_mempool_ops_get_capabilities;\n+\n+} DPDK_16.07;\n",
    "prefixes": [
        "dpdk-dev",
        "v6",
        "5/8"
    ]
}