get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 28416,
    "url": "https://patches.dpdk.org/api/patches/28416/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20170906112834.32378-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": "<20170906112834.32378-6-santosh.shukla@caviumnetworks.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20170906112834.32378-6-santosh.shukla@caviumnetworks.com",
    "date": "2017-09-06T11:28:31",
    "name": "[dpdk-dev,v5,5/8] mempool: get the mempool capability",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "dc141deb0610813bfe88150b110bd03f671c5558",
    "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/20170906112834.32378-6-santosh.shukla@caviumnetworks.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/28416/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/28416/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 40D7B568A;\n\tWed,  6 Sep 2017 13:29:30 +0200 (CEST)",
            "from NAM01-BN3-obe.outbound.protection.outlook.com\n\t(mail-bn3nam01on0063.outbound.protection.outlook.com [104.47.33.63])\n\tby dpdk.org (Postfix) with ESMTP id 2A2675688\n\tfor <dev@dpdk.org>; Wed,  6 Sep 2017 13:29:29 +0200 (CEST)",
            "from localhost.localdomain (14.140.2.178) by\n\tDM5PR07MB3098.namprd07.prod.outlook.com (10.172.85.8) with Microsoft\n\tSMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id\n\t15.20.35.12; Wed, 6 Sep 2017 11:29:25 +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=1qi1frky8AihKSS+rSrWwHnKfcAczS8xjvA6HSZmdt0=;\n\tb=IvGm7Re3LgRruFyC0Wmpjq9cltCQBjoQYXgZh7icqtYd/bJtba68JrzmxVB9qQ8C9oBIZiGOnEvtMdJLGsl5BOcj4CA9pDbUYiNfepkqwP/nYA9XoUiTS9IVQE/aNCyuhVO/rlnBw8osDSMdAwAKqQ4/bhOrMzT0uSJLVeWq1L8=",
        "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": "Wed,  6 Sep 2017 16:58:31 +0530",
        "Message-Id": "<20170906112834.32378-6-santosh.shukla@caviumnetworks.com>",
        "X-Mailer": "git-send-email 2.11.0",
        "In-Reply-To": "<20170906112834.32378-1-santosh.shukla@caviumnetworks.com>",
        "References": "<20170815060743.21076-1-santosh.shukla@caviumnetworks.com>\n\t<20170906112834.32378-1-santosh.shukla@caviumnetworks.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[14.140.2.178]",
        "X-ClientProxiedBy": "BM1PR01CA0080.INDPRD01.PROD.OUTLOOK.COM (10.174.208.148)\n\tTo DM5PR07MB3098.namprd07.prod.outlook.com (10.172.85.8)",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "016b603e-eb57-4be4-1709-08d4f51a88e4",
        "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:DM5PR07MB3098; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; DM5PR07MB3098;\n\t3:Qts86AXJLXg+hC4lHI/Wfg+BPAQPa5HVeROXZVUZcA68FVTe9S5fp3UCnRrI484fcVnAJCtXb0+5rqY/Z33VmJ32dIqCcu/qG/VOrsAbdzvp/3pxkhk86rkRc1fjXm+tNxrPxviUn95Hdr0SU69do6Z9q2QlR4A8d4cUMGS2faTcB24H0mUtv4WTROm0MDoyPCS6Ox+bzuPZEpvl2bKhScWvwbIwrnNXG6Y0Hjv7lD4i01yuIjW37JDnMaLkMCI7;\n\t25:+lKqdlJ8fwVggHcJMvB2XEgzjTFAw7sZ3Xun+ZZzQiIf6OChRM0HQh2VIHkv9nft3MA7h1c2Mh3XYtxS+JIOrbSlgoArCwy6l4p9/LyH50IF4LqlYXGi3KFRve9kpkuk3hib7bDkVM1tjnm3Vfcvm6907QZxRhYKZAw4pG5LOjhHc9ThZpRzEPuHNLNSTeE8UErYurPt2ovKAr/ePEppLT13+wz+95s+iyG1tw7JQq5yvpqRbjh+4xEZDomA4uZ3x51w52/dry+4GBZnIh5cBLNOseXRrXrST2nES1DF7PlYL1KIqtSMqSJ2qCpK3Y/mG+b8/7cOAyO7l9gP3+hqaA==;\n\t31:Rg/ueGDMeO3YEbsC1Iwo1ibLn4wEC/VPk02C/IFqU3AGYYPSlZRNcxP46IUuw9Kke0t6mdpFfM/6fH4dHw/4BBFet36zeJTp/g5SrmPH3i/Llum4ITS4UZNfQil2uSvB77ZS1Q91mP8U/hgvdlycybu+mvgHmbyS8jqFmzsp96IvabH6PAzPShsj5YtP8fW6yo9EIcSuLHzDkgHE5SqUWeKYSJeaE+b4AcAHLkfcWuc=",
            "1; DM5PR07MB3098;\n\t20:2xPVSAxGFkwEN3abCO1iG+pjIAr8v9hXrtxnJ71cdWTkkitJPogz7oofEYQlm7Rfsly5qqPI3NzetU3+lWXCCpMKBWlm2cMnFT1LS3RKZQJJsvKwXD+KL4ssn2wq4oTC5FahZlNgefFm7yuNjdLcu1DoeIJIx4EKP6tCVpfDgkMv3/v8rkBsof3in5503jR82MlgH/bk9Ew4D3uo1VCpJ4yy684e0V86XEbMKjwTw+P9MFA+RZYvq44vetug/T3Xz6Pq0NuIPTALtS2YwQlUaYW2x+urop8iJUF1sAkbHUZFMsF3w+Qeqh4KPDLG8UGpYXAv/Sv///stSu7+L/5xpYbGWVonDzUv2FC1NCMAYAdiO8Rn5O+H9iOOFl8RPj+DJ0siskEJk2UeZXAZAsI5vg6l0Sm8U0WSA7PjvefsVGKWNxnyYCxkR7T/cPa51gNZvtwT4D4Urx/MY7DMbh4JZu0AOJtD2S2rc3PCiCbNN/UI8G4MNKpgZxmtXZvy9nOzveCXlYxnnXU7gFTB8o0D3B4uDtw1E8E/jo5qKTY/JJUTbrqYSK/JzaqXGBSqubhHZ5AX9+f7n6mFKSlDD0zik1LuSzcX5n8+M7tmqDA7gRs=;\n\t4:QY6pXtzrwLsLJEDh9DECN8bySDeU+xhwDxcNhm/IkniKQXnauQ+PJK0wS77wrfU4AhjWnrK9JdfGiNiXOXxOgjvpH+2kIYLKGyCtXNUx67dRW+SxqEwXKh+NmRXx5iusEjKr4BQEYmHFH+U52KSLatC5JScwjF5zS6eodhXiyliOhQLWa9BvNe619Xe9Z5gN1/7Z3d0wRTBzc+r3eo6yeziU60eusZPeCZQb0RpGATEnshmfaOSs751pJjLaGaj0",
            "=?us-ascii?Q?1; DM5PR07MB3098;\n\t23:SGVcyruBKYOf309Qd9ZhDVhmGorJ+beqTgX08sXjN?=\n\tdn96saO3di3edqcNU4iU1lENLO7SN42uuaF3z9o6cMlQH7wKTi0KAwOgg0+CycZxTKVjWOZ0fzC/pc+XsLrM/bhRaxt33jlJryD6IB15urT73vWI3GzRaiCb+EAco2nMTO3Mvn+M/oPTist9i+fiGvSLGth9xYV37sfyfKyjdn0Hrbt4hb+9uUxFlq5UeWzi/U0J2XHemDj/L1qYflR2MTIb0PfGP74ELbd4jl/Y7f7I3VlHGpf4p/H8py9VFfyWFL16o2JlkB1n3PLNKJvOT1zPbGn1RxZ+BaOe66vEn/Qm3V19UBZ/QYIq6UjxlJfSHDPOJjNnHCoG6CiC66re8pNC4bZZTi1npjJmZRtYlk+vNFDayuYGpFuAecCyASRgPYe1fGMbr4yviRUIVEg+C6OXA6R9qY++sd4VPDERmBzHPfEFhwtH+04SWkVgrqlIbsXMYk7HkuXDSFeJEBVA5kHiMBNNTqMt6VlSxOSRgSjR68Alp2mSDTrnWtJqWSI25EFXR9/3Fe32DmabQ42IkLW1YVCc5zNCaL28tg8jc+2T+5FNR9VQED4cNjLbNZQV2tG91Uc4divCWFSXSe5wmIm8PsN4Cux6r4bRHjLvsmZFPBy9SlHQIqmu3Qxvbh9SeMxf+n/GTJEry55CLmzp/vdDAOpfxoEp+JQ1j/r5M3LJc7UUvxrW1T5vbuOlspsPCVPLJgl0KGEc2eCq22RfOXFAgbufuCAJdHPnqIQUKKShcsNtTjYKK60j3p3S+5fSBrkCU9GY10qIkEjsNzcRdluVvCIy48HcQQVZtLfMEzzp1DROJvtnDqA+zCFaHRCfMNhVN3WfRYVlyUp7J8nJN/hhglK6FmQ+3VCiRRWREwZ2IbLGzmjR2rhxgfrBf/aKSwlhtNgOniV0yVTwEao3kqzUd7aP7i9jJRXiuXQ6VgbjgGZL27BwrNfrzHL/5yaKYrIEY+rIME9QKcILSxtraGRjWULhMgi196gHj97f45P2aebgbO5F5oiEUbw+FL/V+5VqU5sfuKyvEmjnEHUjTTSLy8chA/zjoZ1D1D4802tuZrYx4GuTV0Sc4h3BmeR+yePIwcjuovCn+h5ZX2AruxnEaJYrrzdnMIdlz3pwbbx024CO4ubMxeZgaUodEzqsfyMiaBBWFtI/FBNgDe0ys7hJnukT/eTnMzRqKt/YmDuNCgrQlHziobhRK4fw/vVs6X07UbBtqYKpe2o1tXXGrsiokD4CoN3r9RpZH90UhFuz33/3C2hKAJTrto5AkXNDuS/C94ExzIphyLB48t2XkXS",
            "1; DM5PR07MB3098;\n\t6:+spXhzzTJiBzTg4n7capNvK8rbzedmFZlmzN97UumSueJgPlU2jaq0lFaz+KdyA1muQ6Hmndk+++P+Xh6sU9zPFS8NnliFEgGeUnbRQGRGNS0UKkWI4qppc5gkOlDTvW/pJp/s1ewk1Ru7076Yp7vGl0JN7iUqpbT6WZXU2UTEH2VuBVcHBxNf2l/8j4FqAfVal1Q4smDyvWEWiTBC+kKqvZ5klCACB366iljHhxENj0EmoRohQfawES+Q+tpPpy8B8X4q2HqWQkVqHOhTqbPh2NggF1UlbcKF6he9ebtZRs+/1q2/HXmeM5PKhv34J8d+i6DJaAQ+zCKgiMyA0XoA==;\n\t5:HpZyQbLRBkfnVb4GPzAcZcVzOxYSHWd5ecVtnrY6Y8zhvd+iAkZlhWgqfvC91Hx7wwMvIF5wLEp6Hr8+GCLA9Y0SOypU97+QMXSv852bv0cvFilMsgrTX1kKIE9QD3xeJGX2Vt8eV98WHdVeNTNThQ8IZRCDgsiS0I++MdVZEjE=;\n\t24:9luia/5uPuv+ZtTEjneWgThyRUDd7aorIz/ZO+S7EF7aPyTVQC5oQkCHDOgTudmDQvJJmMUvBJSxOplNiSQs5V3GL6xdvC3mrvylMHYIxzc=;\n\t7:piEL8kFNbVX02bwtDvHqnVyEuUzf3G5RtMb4KAKjLacvObGARwIAPt8hjVTJfa0xZUPFBVC1Ct7PGuYueq+Nv9Hcg0x9V95QwoKrNVBeEBOjkOXpYO/bj2UlrMBoitcfUwktNLn1mQN3ACq5psewW2zh1lkW/T+J/P5akLUidRZIhM+s5QR4y1OCkItFrj1H5Z765YfMTO2ZpqGyVEUcRAvcFjy4v1R3B0gPozSkaPU="
        ],
        "X-MS-TrafficTypeDiagnostic": "DM5PR07MB3098:",
        "X-Exchange-Antispam-Report-Test": "UriScan:;",
        "X-Microsoft-Antispam-PRVS": "<DM5PR07MB3098A061441925A05ED1AC8FEA970@DM5PR07MB3098.namprd07.prod.outlook.com>",
        "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(93006095)(10201501046)(100000703101)(100105400095)(3002001)(6041248)(20161123560025)(20161123558100)(20161123564025)(20161123555025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);\n\tSRVR:DM5PR07MB3098; BCL:0; PCL:0;\n\tRULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);\n\tSRVR:DM5PR07MB3098; ",
        "X-Forefront-PRVS": "0422860ED4",
        "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10009020)(979002)(6009001)(6069001)(189002)(199003)(53936002)(42882006)(2950100002)(6666003)(6506006)(6486002)(6306002)(6512007)(50986999)(76176999)(106356001)(36756003)(189998001)(42186005)(105586002)(50466002)(8936002)(50226002)(48376002)(33646002)(8676002)(81156014)(81166006)(7736002)(101416001)(305945005)(966005)(68736007)(6116002)(3846002)(5003940100001)(1076002)(478600001)(5660300001)(72206003)(2906002)(25786009)(97736004)(4326008)(8656003)(5009440100003)(110136004)(107886003)(66066001)(53376002)(47776003)(110426004)(15583001)(969003)(989001)(999001)(1009001)(1019001);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR07MB3098; 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": "06 Sep 2017 11:29:25.6936\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "711e4ccf-2e9b-4bcf-a551-4094005b6194",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "DM5PR07MB3098",
        "Subject": "[dpdk-dev] [PATCH v5 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 mempool driver to advertise his pool capability.\nFor that pupose, an api(rte_mempool_ops_get_capabilities)\nand ->get_capability() handler has been introduced.\n- Upon ->get_capabilities() call, mempool driver will advertise\nhis capability by oring to mempool 'flags'.\n\nSigned-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>\nSigned-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>\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)\nrefer [1].\n[1] http://dpdk.org/dev/patchwork/patch/27598/\n\n lib/librte_mempool/rte_mempool.c           |  6 ++++++\n lib/librte_mempool/rte_mempool.h           | 26 ++++++++++++++++++++++++++\n lib/librte_mempool/rte_mempool_ops.c       | 15 +++++++++++++++\n lib/librte_mempool/rte_mempool_version.map |  7 +++++++\n 4 files changed, 54 insertions(+)",
    "diff": "diff --git a/lib/librte_mempool/rte_mempool.c b/lib/librte_mempool/rte_mempool.c\nindex 005240042..3c4a096b7 100644\n--- a/lib/librte_mempool/rte_mempool.c\n+++ b/lib/librte_mempool/rte_mempool.c\n@@ -528,6 +528,12 @@ rte_mempool_populate_default(struct rte_mempool *mp)\n \tif (mp->nb_mem_chunks != 0)\n \t\treturn -EEXIST;\n \n+\t/* Get mempool capability */\n+\tret = rte_mempool_ops_get_capabilities(mp, &mp->flags);\n+\tif (ret < 0)\n+\t\tRTE_LOG(DEBUG, MEMPOOL, \"get_capability not supported for %s\\n\",\n+\t\t\t\t\tmp->name);\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 202854f30..4fb538962 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 capability.\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 pool capability\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@@ -509,6 +519,22 @@ 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 flag.\n+ * @return\n+ *   - 0: Success; mempool driver has advetised his pool capability by Oring to\n+ *   flags param.\n+ *   - <0: Error; code of capability function.\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  *\n  * @param mp\ndiff --git a/lib/librte_mempool/rte_mempool_ops.c b/lib/librte_mempool/rte_mempool_ops.c\nindex 5f24de250..9f605ae2d 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 capability. */\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",
        "v5",
        "5/8"
    ]
}