get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 26407,
    "url": "https://patches.dpdk.org/api/patches/26407/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/1499179471-19145-20-git-send-email-shreyansh.jain@nxp.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": "<1499179471-19145-20-git-send-email-shreyansh.jain@nxp.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1499179471-19145-20-git-send-email-shreyansh.jain@nxp.com",
    "date": "2017-07-04T14:44:10",
    "name": "[dpdk-dev,v2,19/40] mempool/dpaa: add support for NXP DPAA Mempool",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "8df590cd30a760f42cfa553e3ec0e9dbdd80a580",
    "submitter": {
        "id": 497,
        "url": "https://patches.dpdk.org/api/people/497/?format=api",
        "name": "Shreyansh Jain",
        "email": "shreyansh.jain@nxp.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/1499179471-19145-20-git-send-email-shreyansh.jain@nxp.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/26407/comments/",
    "check": "warning",
    "checks": "https://patches.dpdk.org/api/patches/26407/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 D3B687D31;\n\tTue,  4 Jul 2017 16:36:14 +0200 (CEST)",
            "from NAM02-CY1-obe.outbound.protection.outlook.com\n\t(mail-cys01nam02on0089.outbound.protection.outlook.com\n\t[104.47.37.89]) by dpdk.org (Postfix) with ESMTP id 6190D7CE1\n\tfor <dev@dpdk.org>; Tue,  4 Jul 2017 16:36:09 +0200 (CEST)",
            "from BN6PR03CA0024.namprd03.prod.outlook.com (10.168.230.162) by\n\tBY2PR0301MB0598.namprd03.prod.outlook.com (10.160.125.20) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id\n\t15.1.1220.11; Tue, 4 Jul 2017 14:36:08 +0000",
            "from BY2FFO11FD048.protection.gbl (2a01:111:f400:7c0c::107) by\n\tBN6PR03CA0024.outlook.office365.com (2603:10b6:404:23::34) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1220.11\n\tvia Frontend Transport; Tue, 4 Jul 2017 14:36:06 +0000",
            "from az84smr01.freescale.net (192.88.158.2) by\n\tBY2FFO11FD048.mail.protection.outlook.com (10.1.15.176) with\n\tMicrosoft SMTP Server (version=TLS1_0,\n\tcipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1199.9\n\tvia Frontend Transport; Tue, 4 Jul 2017 14:36:06 +0000",
            "from Tophie.ap.freescale.net ([10.232.14.39])\n\tby az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id\n\tv64EZM73016426; Tue, 4 Jul 2017 07:36:04 -0700"
        ],
        "Authentication-Results": "spf=fail (sender IP is 192.88.158.2)\n\tsmtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed)\n\theader.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com;",
        "Received-SPF": "Fail (protection.outlook.com: domain of nxp.com does not\n\tdesignate 192.88.158.2 as permitted sender)\n\treceiver=protection.outlook.com; \n\tclient-ip=192.88.158.2; helo=az84smr01.freescale.net;",
        "From": "Shreyansh Jain <shreyansh.jain@nxp.com>",
        "To": "<dev@dpdk.org>",
        "CC": "<ferruh.yigit@intel.com>, <hemant.agrawal@nxp.com>",
        "Date": "Tue, 4 Jul 2017 20:14:10 +0530",
        "Message-ID": "<1499179471-19145-20-git-send-email-shreyansh.jain@nxp.com>",
        "X-Mailer": "git-send-email 2.7.4",
        "In-Reply-To": "<1499179471-19145-1-git-send-email-shreyansh.jain@nxp.com>",
        "References": "<1497591668-3320-1-git-send-email-shreyansh.jain@nxp.com>\n\t<1499179471-19145-1-git-send-email-shreyansh.jain@nxp.com>",
        "X-EOPAttributedMessage": "0",
        "X-Matching-Connectors": "131436525668061169;\n\t(91ab9b29-cfa4-454e-5278-08d120cd25b8); ()",
        "X-Forefront-Antispam-Report": "CIP:192.88.158.2; IPV:NLI; CTRY:US; EFV:NLI;\n\tSFV:NSPM;\n\tSFS:(10009020)(6009001)(336005)(39850400002)(39380400002)(39400400002)(39860400002)(39840400002)(39450400003)(39410400002)(2980300002)(1109001)(1110001)(339900001)(199003)(189002)(9170700003)(5660300001)(498600001)(86362001)(2906002)(626005)(50466002)(69596002)(356003)(4326008)(48376002)(68736007)(54906002)(36756003)(77096006)(110136004)(38730400002)(50986999)(8656002)(104016004)(53936002)(76176999)(5003940100001)(106466001)(85426001)(6916009)(6666003)(2950100002)(8936002)(8676002)(81166006)(105606002)(2351001)(33646002)(189998001)(47776003)(305945005)(50226002)(217873001);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR0301MB0598;\n\tH:az84smr01.freescale.net; \n\tFPR:; SPF:Fail; MLV:ovrnspm; A:1; MX:1; PTR:InfoDomainNonexistent;\n\tLANG:en; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "=?us-ascii?Q?1; BY2FFO11FD048;\n\t1:biijH9E5XDK9noQAsXcJ8OARJI46nlg1DRu114/9QC?=\n\twOl0CJx0V/AWiB7HyWR4JpOYqC/1WLvnWx1qKY46F4lKfC+W7bar0y+8w7F6vBfRhXHUL3DTDcZnwQ53n4/nNLcyXXww/BZ4Fo+GUC9uxrYzGCt83zIqBvNNBnIPdU0I/rpsV7S79fB+TSw1PAA0qqv5Soydr99yljwleYhKrl47v3FRPoGUKWg8Ub6+ZXN5Sda7ytj0BlnFg9Y+1J5tYkhfgCZjeCp58J+0l4jeoxg8bzcp3eVe1Lp1pejRIe3TrFVKmH0/cVygEzUY6G9YpH/mEVbJZ7Fvc9gOArWBOzLejx2R4YtQH1pk3phyIcSz59I0xnUcCBFrks4CkEWt0lqLw6tYTXnndMFqV0rT5bxqY1ByJLY9dMLBWIWzM1rv18qViflKwn7beM/j32XSHnbt67QOZcjclvg0Zfgi3AiJVQ9FiOG4wxDUO5S4UwZOI0ifxiP9iHUJRd6zb33aiYvTTt0AsHx6ku07Avc3MMZS/UWyZa93AP+4p+lLSu9DuvMqD3g67TwXB7tmko6Jbdd+t1Le0PHCDiEaeFJRvMOSRpKc4ygCrsNdd8KU2MbwAVmD3LhTZWatUc/KLSNdC966TG2QgKRZMUDQDbRzxMkWNZdIHids8mBbnvDyRdFLagnWttkxj7tN/oinCNW2MBLGR+xk5Ccdfr7xqYfZk4HnuvVT9T+wvQr2xuXauflyx82c2EaQAq7WIIa4Q4BSuXpNwTd8jcE/NRy1c1uG6YKNshESa/HJK1pwHH7CPW08fbAeGUrkO2xErWqs/cU/8H1nb6SmLoY96UsuTpFbEY26X2d15N4677aWd6SpH2AQmMiXjg3tyv4pCf8qHtK6s1KTdA7Gf77b/notoK4wwuyLK18RH/i9ghUacSf88H2Cul5EKDa359s3P/kiaR7rjKSm9OokV4m9r1xLBWQEa02ZVpP+cJDPZgeyYkhbBZhC+Ginz2meoN0dwXJ4pyUPEwY+x54Otqdypw5Xo7P7mGq20PvbQCZIfRdP+CAQN7RF/DRlHBT96wAcWMQpHgLDRyEwHO0tnMMTSxz6yhUYdZRA==",
            "1; BY2PR0301MB0598;\n\t3:Vc3oWjFSy/TsAqNSRFDzzWuSfC1HpE0uz8zzgwOkvs196m4HNbo/g07JEhJcEv40Yiap90q0SDU++gf70E+ocxYHURjRODu6r0QKeHi8Mi5Q1VoRcR6zKzREWey6jqdQ5Wzn5qDBR2T2MbWBdKxczlk+qUSUM0C9LfYAyPaYCRa6hBsc8mfi8b8dA4yxNM3hVLXBBWoE9KS5zaYEvgycSSJBDkstzrIXJS2QdWzWfUm8QjVrBhXKYe/RZBzUMAJzUG2MBKWfnfyLblx6hcvAG27DvBf2sUBr5tSgoBStvE0SmhKIkiJip7gszjx20GmIdzhd0Eb5uoVlwlah0lt+fDsnUg6SFCHKGEHl4sXC4EaM7no2uhoJOtwSIOHVc/KnwJ50KnDQNakyPaI9TJdUdPV9hWHs8sUEVlgNp3SpyMUd6BvbYmovGa/x1qM6X+W5Tf/nX5eAOpF+LK1g+n2WurZrx5+az10y6t+9H4/EnJ/IiXMPlLCKayXvweZ42n8nLcU98YnY8aIUWHVQTxo1unXFKPaYtFPcyz/BJqUhL0b0M7Os/dC0JFT1oarMnEU578HTZScDwK/bpucX0CtbxmDtUxmbPPlVYtuTVV7nTjN2MW0rr8PJBb9ye43drcFlgJppqSYpcP4UbiMX6evB1mN/T2EXWSmxBBUmyfp7b5d6ttRx2cc0r8lrow/GyxSklZ2zLpDue7W/DA0CHQOP25VBbQl9q4I5fzGMN7iIFpFEA0X2p+qr4N96/V9NSXikfv8qXbYbMxYuvBWaHtVOq6YV+uzQRxtOgfB9CNdGnk6NUsCCyXjBZNw426GJ5HLAJiSqSDJtxMQ3citXQi6uXID7ijXxYYKVBjo+pw8zhuMtL9B3DfaSamBHKXpEHEYe",
            "1; BY2PR0301MB0598;\n\t25:3CBe4WPXCaM2SPoXCmSlhoGmKPxsb0+PIJtVvWJfFqJO2EQ5Plj3kmwQXJZnc+6IVyCyHVktoitr4ZjnBlWfKf9bPDDOdnNRmFzsSNaYMsS2tv6lH5g2By7Nd8hJ6HX2AcBS1D8b1e4pvc4SgqzOlPR/2mabqOo18uFQr2isppjXWDHfQBJbpdg6OCE7CN+JUkI9RpjHtPU1lwo1MVMz4ca1+LutivDoa/ZaLLJGAakT8pKths6Vap4CgZeBGT8B3+VpUcD18XHPmUyUbYC0PXwv2oMJdbglnz3vMmc1rQstvKMiLeFtdhE/ASuRJW91N8gseTM0Kr+u+aC0pl3YKVsDYo3HX6/LZDx98A+gvzugRHqwJbrl6fKEh9ZoLWhGhGCNgAeLXHDQ29GWRiHOrZoTHR8SuPDCcV5mFvcl4cOAmHfr/oFjCP3NjZpDG3k94KSUPB7VySQ6st1kWbfUia4egsgc5h0vXvGr2c3Kh5MiT0LTpOMiYfXMxuaseX+J/HxCmv+WIi+DOWm/OK9SyZWNlOi5V7pVJzwS0vQJZvYMDdmdvtvx+4enOiAYVGMrs6JZraEwJngFc1URa0berkQD1mEKmPDGxpBEfS7ai87ydRLEG55sbTTb+cjZcuZ2cIuo7ueMpHNTdPUxL9RDsoTYwxSfAkbULbAUnelyo3OZTw2f1lYAEXLZeIsyGRFedYYL91M62WKPd1cK/nU7rIBILsiCQG/OZ8yvKLNPnf0/1IglIxm2+FPoZHsh2Nh4Ga0kOU4Z1vInvlezTt1TIW7UCqHEqQrF12ZSBE0luSNJtI44cUongi4UNhR40bTxQLIFkqxegNocmmxrKh2H+UOkzVclZ4dwYzuSYMqZP/UAYpm3/KMyTaLlvw2I/BGCd4N2Q3n3/v21Rx4ULxehKmvUGM9dB81l0zd/yN4n7zM=",
            "1; BY2PR0301MB0598;\n\t31:Ny1LDGTJt7n7r4rg/mdJOY+OfdiNsHVDN8351wNJy0i5gcITr0G0KV9cRccbl2FtctPpq1Hy8dN8qpyI45mIOsHtC1OhsUMf9z8tC2xVjhQKFVCXmQnte5gVe6WK1WJNYRm8bMUoJ0Nog9wZ+cfuOazEmuKBcgX8z4fxKoCbZp0grdc7NlZn+R6zD6dElILDk5AdJgMqy54L9vVghkHnHfhJSM+qxP8RxyyGHOH4g6sSxe4DjzCTY0h98anL+AfQL28cZiZJfUFYjUnhJGpXxUfbhm57XTSIblV4axVxFwYm//Mkz39D4IQVypRrXBeD/h0F80BIpArumZShJpyz6NUBSS6Ygwxpu38ISr69zBETtMSjbREPWnuYUiYWdPdAxZKiNGVx6vkX+BwBVyXkxqrpy2KU94BUPGzazQgmuhYI9B5r6YD60hn18gW6ryYVRHHBJNTCtvm+ERDg2lt6tMHZ7CbRovV4DMSLBeKi35wkBRNqmi1viE8B4WLxPdwwBw9hn6kuHpYwxwWkMS21FlG0K6dW7NuRitIY/gHUo/H6faqkxDCd8syCu7eIHwauOA01m1mZDFwYLQs4iK05C1aLdFkwHqXVwxSzQsV4AoKjb69a9omK1pKWxM6ZAAG3E6FsFBnQu41NF80Qz17xxkZPN1V704hMC2xHGMPjBgIP9wrr+oR92Amh7fafjXjPoOk7oBiFFHBNzkCfMPTRTw==",
            "=?us-ascii?Q?1; BY2PR0301MB0598;\n\t4:3H+Tr+YsnMPxLWE9x4yA8aEqcbLbSqfS65H0P3RA?=\n\tgG2QzscEzUdtz/D2wuBnk75Ca38k6QUajN/pSCmD8f8JR0HZYkCN3ivTydilENDOd5lEUE7rQK/NUe8uOsUZcuQAlfCGrfhrVzLcnWAXGHrEhYpYRwmrBC3mqM2q8J0drWNfIppkPkgBhY1nl80zLWRz+C0HGKvgLyuhgNyWlAPOG7X9Pich8H8NBPRtcwwprOouUfClOtFOKTMb2t8w/9LSLJ33LsaO0XXRPJB6DIMiNOeipDxSi3164Lj1Q8Fzv/pht56eUVvUT6PKJzgdpxsHP8sJjyQ7rVyT0QWfAK6VR/zHf5ifhZUY6a0vXV6cueH+iSTuQOqPuEEkVLlo84OuE/1jmpDDwVsMo/CQFYsW1jSrdYfsIJ7wL3vBSAcTBX0dNodpZ4vX/S000/ks+SzNwLMUabQ1XNPdAB5cQzqOoylu8V0CLjrghm/c9M96wq8ZcJrxeFx1dKrxsM8xO+bXn1bUvyqHUnEov3BPILYSCn7EHQ2I2R8i9LLFLRCZgATtQFfsi79OPWi/9mgAKAUC2P1tSCoGa2lWjswW+DfHgf6efx9wobb1yVNjD6aURCSE8p9sKvhnIWXcl21n4Lk3woNfLlVoLzUP/DYuP7OhCyeGhx5ccsdKlv/eVhQtP/JHek7h3R34StaGRG6V72uQUqIKGjVrU3wAWQCrrYxtHa3Jn8ebG4/UZxgfKICjOHwztgTFNPAxuKYEbs+FqHGmnAsxKZOjtb1y0aOxb1W75mqZbKeafUl2r87iAnf8dYusnIjIg7qpMCzU0e/9l3pvCL5zH0FDAYv0MOQZAT4yNmYACMO7BOTmfDP3wg9kPdeXET4L7uWAgdyDLsVxErIvyV5aP0ialqfWKtkXfLvvwiCM5AleBnh+ORQGRKkoXv1FOnA/hMxl4DSPupUDTg48Jv7WdBkvrPqc19mFz604xU5y0SZf6di+m8aMJlLHdhyefMjgQ5I7xm7m7aGnw7RE2ThY5z964EBU9dQVpROxnPqAzuYXgt5Yd4Esby/M4HDMPAivHRcxuK3DpLi/41vE1jiUXTR7++oLvYcJ4du9BHtL3l0xtDIyev9oKufGTi1TFBqDtIrXBHin8rlHVTMRa/N60h3gUiI+CqOBZb12G+RKy8Q/qCIuJlAthNqLM+ysqrHahnJy68S8St/CLF+wRuEWTfv1mehrhLYFjg/NLdcqd5H99rOHLkRN81ykPLQl3joiSPsg9exofGU3TirioKV0Ac6Jd9s4Thb0ItNXLkiPyNFrU4Squrzf/oH7B9gkCU2TaqJA2xfOEf6qe/3h/u80Hv0p2Mbw7HYEYkicVfjwS1gcYhX58AKRvOl/dyfA53U3O++zdjhJsLTTdSp8",
            "=?us-ascii?Q?1; BY2PR0301MB0598;\n\t23:kAGsL+t/M956/lq75cqFi7RMiPawdWjea8Q1P34?=\n\tUrIJQTdHTPi65th1TIh2stYWsB9WkMjd7CnCeyP+B3I4VjMPFO21TjhE5l1PrPLgRfXo66m+h0CdGomfiCpXMxkGyIEmCXrS6lTomeliDEll5SCIrPxDwO+z0s6R4J1gdmcdLpq/oGDwINDYsIcJ6MywaHWH/OOekznXKE1HJfp8QOCSHltR+nBMUlgNOZikcn59+CoVoCwAaPXlE0++ubo2/QZTfZXu3SG7LIP5Eq/wMhiOXfZ+rLZvrs2+90XMy7WzeDEJk5cFR7Tu7xTJn/SCKZSxDrfVZa/UwgDl0AYuGZ3rlK1fbrx1Q/qBhO5DQByeXWvWhALEPmV1x+oHJCjg0zxYoeOZBd5+S9emKr3IpJlxB6y1MqkodS9LqZjg+Sxoonu3eFRS0LPcyH0PEVaMbriv3CuzpQB1kOZ1nAiehZSgtX+zb+97aUrKWcDoK3o/ua5Ft7pBRKfuv1BZ3GdFeGGIB48TQqAXqa5MO8iXHSb55+3kGs3qgxjmJJccx+a73nF+s+TMCxOxEfV6alaYqAyXYRWYVFtx8tyFRUzyhJHpp6bC3ZFK5xRBe5VS5SqK5Inr/UkSYhEcIRGtL6UGXfZofp55VIb/OjB8vTPRobhxyrwQNEvcQ4zISBmoe1w7pd8XMwkihEj2ysIbQLlJq1CKkO72Wfq/u/lwT2ujw1NmJD0HrtCT3lYmtkcKLx2OqJi15Dz//rkX9HnXAOayh9sdLzKX5ebIelvU23DN/L/Qkf7OTm1tliSQ9TZueEO2Wv1GTWXlH3jGULZVxhURO8z9ZVmm9M3Hf7QMdW/Avwj8xlKqyPJIa/jwq6oHdKUGNUdF9kJ8VQuFnZvXLJMMqs9tx49YtbFfyNXhIQIqLEn+Q0F5hxb8XGlYyX0rq7OydXQSVktGCGZk6NOMhJxh//SCsH8jW0kU6NU/Qie5pKevdZK9iZInIYVBkxnjhXmQNK+p1jeBhh2QhwpKF5DoZzVb9r8fP78PAWg90zeI+buto1lzHGUVZz9ijuR6v2hWyFW1P+6Ci30CtsFgaxNDfaT2dXy0fV17EgJlk3gzFtd81n1CvDk9rOE2cmFzN477jZiefH7ipCal4AP69XHMb1odPduZAxx+nUg0wGaHdqXiWjfQTuIAnrMzFzIJTLKcLo9LqYHLcBmxPZSLdA9vJPDnrGToeg8gILMfyiQtnESnTuyKb5X+e9YADnMLYv0amgCfiU+HsSzfPaq6TqPU1lOiOc2kYFiKoaoYr52TmqPONBULPcXvG7VAdarjzLOs=",
            "=?us-ascii?Q?1; BY2PR0301MB0598;\n\t6:Wm5BEJ8aJPdbLM18HqR/1QtbXJWmBsrHi2Whe9Pf?=\n\tKlYbPLbxrDgqKQRnabK2/UGkjhFtnNIas4Geo+iAfEHbWQV0I2+a9stbXB38WMpmTo+HXES7QF/msigEnBSs/bVJ4rAiSAo/y5QvSUzuolBJtL2w/BQlmmTmtiHsgnlsJzQp5QAnum3hy+4jgTSSqX+aySO3tpK8CXcI+NwjV+y6fX0PRxuorqMzmVJBJkdsCttwz7i8WzHr7us3kIkz7vulMe+qAZhXiNilb0IvPa++Yy1afkvb6a50XXG6VMy3gM2adARj2zufOnvQ3yemWBt43YU35Mz3M1wpuy5jaiLbtyw5D+J9PNqX1sWueNhmL8f632jNCpgxgiVIs+br4kGw3sBeV9axzezo+UKtFB16op94GizroHK1guBZMLqRDDJ1umjDxjS3SB7j6yuFmYSaP62gWEba1qGLoWdzEwoBFsJv6PeMm+JJiOR1c1tlcAaPAVr8ozz2OkPNOl7WfYmEy9t17ZpF4s9nyLL2Nzx35uP16jGkjEy9dv9xJZUgy4167/vBxe758hSLXxW903ehY1Hn66jImbjvqGqFoDvBn0i9FH9A/5nKqZOUpMvdGrkH7g6w85F6x3bfCRVOQvBksQwz0oBmAv6guBpPlF1xHtqtLKAqNdDHEWNGP1WknfUJSV3syW/XDShaAI0TdOqIRL4UgSD4h7bHW6DejHEnqIWudZx4/VbVgh6mqxz3pHGl3QHWSJ0H9st8p86KKsOBdE3ZO0/1sHB2v/zVy9vXYlObNephHm4HsI4zIUKEfJQTjoooAI5w6kaTKgju+dxmITxEBWYcGPx0i30WkQdWKSwZRamTsZun9YNz3zKOGdkYKXzghebZZMkh3rGEfGlBNwB+/bC3jyOSRJOVaHwt1oVe5CO9EOW+aHejpg9Hd8q3WcAzjflPsjG/GsuaX1Vtksos4D6l1mZo2jN90s/POg==",
            "1; BY2PR0301MB0598;\n\t5:Q9SKJpprSo7fydSJY4IsZeiqHh90tuiZ3SWacBe7RUxkf8tYc7elSUTC9xAVnHbSuwUKl6m8XuyMBR6cuthEvbayHGOxhWiisq5GllSrTFXkNinrPo2EtDwy7mXr+wG63lioNdLrlSQGkst/j4jb65FS9Z/lxkiNyHbwVID/2uov8VevhM2SI7LgNAtjVmlqYe3c5XXXmk9GGvon4gD3yiNreWLbdXYsBGKU8QTpheLQxXt7nv36maB1TwvK9O9pGN8j6S7R92jPKblkpJuAU3CSjkID/WRcaKHvexN1dAPBR8C2AqBEYoGMBk1iCjomfT4EKXYlWmPu2f64vlcdtWRFbteYOW7DxID3tcUnj4fp0c4phVZhV5e+PdBvg7H6agNCgJ2hK8y0boG5Q6GtJDFldsc6Mipm2u8v4tWXi+M3kyphb9LIw4fW6ef+MNB04sNVcMbGcQW5m4bFhYgNrttAS2H/cuv5HUo+BsTCwyVz0tx62g90+TWcz8dREh5cMz3WdPJ5HUPcxOqeluWwLg==;\n\t24:m8ZIjripxqNSJWwIlolZkx41W0E77PH4RPVcCFHmDufAXvZR2zJ+qsbL+AxBcWUBMM7aJQmz4vhtREM/6t7JPfX0aPk9SndKCY59U+yA4cA=",
            "1; BY2PR0301MB0598;\n\t7:zBdIUHPSb/B6Q9Oyd4+EUsK68fnjGInj8elpOgO+J93rDy2yrL8dfYsdNMJcqmHN7bc3fuEZclrrq+t9FfIMH8lyuB9bTjqplgx7xV1NH/1nOdQFqCogm1izPAAc609ahxMGzL19m6dtYLRbCnf0dljoV60AU2yQaZnpvxgF+t+xbybrTG9s4V9iVx7kA/PNQ1uXFFg+Wu5IP98hQoiYYY2NYS79MPIgpBvV9w+VbyzVlK4iIczE0PBF9B8iV3sAT35SKm7hHAiowmwgYMqXamBNKbDpwlhjob48GfFRvlQnr6TC+/Lxle4JjlzjiKvthwtw/98DUTC+tJIdE9cuuNdAn4exYki1yV0YYXzSjatniJWwMZ6EY/qMnoeDhaSAJTvd6dejxQKsgXhyxsjn8MZ0oezKW/kGcTMFXWFzMnR+lz0oayqDkjpLXJNh1h7yz8PUoXpC8bUDXwmWJzyHVOFqMWo+GMey29nrg+ODsieYJThPu4e9uM17o0Qzfu3TkJ4/mvDhjLzpfizlocZ4R3Z242l2SBADkzAV/KvqN2bjmV8kHkmlMFI95DWQX2aw6jd2/hE+IiPcDl5YNmbNr9HgiC1y0wowuFjkw5T4gbHEt77zjKSGXh8lmoMjKHj0xQ7Vr3goYjXOXv47NPRzPFFoC25bXRymenHqlwxhTTQF9yaX+YSjxWypGIH7RjPKxNIPOH+eeexHDdeCUUpGQTFXto23/TaVxmWPwVniIx9wPgi9tab7mfciuEp6+gMxAVNK7Oxa4ucX/UBLGjlqeOwOrh8gkUixCcmJsTJs334="
        ],
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "c163e49f-85f0-4389-c501-08d4c2ea0158",
        "X-Microsoft-Antispam": "UriScan:; BCL:0; PCL:0;\n\tRULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(2017052603031)(201703131430075)(201703131517081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);\n\tSRVR:BY2PR0301MB0598; ",
        "X-MS-TrafficTypeDiagnostic": "BY2PR0301MB0598:",
        "X-Microsoft-Antispam-PRVS": "<BY2PR0301MB059835EF02814B6620CDB3F990D70@BY2PR0301MB0598.namprd03.prod.outlook.com>",
        "X-Exchange-Antispam-Report-Test": "UriScan:(133145235818549)(236129657087228)(185117386973197)(148574349560750)(158140799945019);",
        "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(601004)(2401047)(13018025)(8121501046)(5005006)(13016025)(100000703101)(100105400095)(10201501046)(3002001)(93006095)(93001095)(6055026)(6096035)(20161123556025)(20161123561025)(201703131430075)(201703131433075)(201703131441075)(201703131448075)(201703161259150)(20161123563025)(20161123565025)(20161123559100)(100000704101)(100105200095)(100000705101)(100105500095);\n\tSRVR:BY2PR0301MB0598; BCL:0; PCL:0;\n\tRULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095);\n\tSRVR:BY2PR0301MB0598; ",
        "X-Forefront-PRVS": "0358535363",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "04 Jul 2017 14:36:06.5565\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-Id": "5afe0b00-7697-4969-b663-5eab37d5f47e",
        "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e;\n\tIp=[192.88.158.2]; \n\tHelo=[az84smr01.freescale.net]",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "BY2PR0301MB0598",
        "Subject": "[dpdk-dev] [PATCH v2 19/40] mempool/dpaa: add support for NXP DPAA\n\tMempool",
        "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": "This Mempool driver works with DPAA BMan hardware block. This block\nmanages data buffers in memory, and provides efficient interface with\nother hardware and software components for buffer requests.\n\nThis patch adds support for BMan. Compilation would be enabled in\nsubsequent patches.\n\nSigned-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>\n---\n drivers/mempool/dpaa/Makefile                     |  65 ++++++\n drivers/mempool/dpaa/dpaa_mempool.c               | 264 ++++++++++++++++++++++\n drivers/mempool/dpaa/dpaa_mempool.h               |  78 +++++++\n drivers/mempool/dpaa/rte_mempool_dpaa_version.map |   6 +\n 4 files changed, 413 insertions(+)\n create mode 100644 drivers/mempool/dpaa/Makefile\n create mode 100644 drivers/mempool/dpaa/dpaa_mempool.c\n create mode 100644 drivers/mempool/dpaa/dpaa_mempool.h\n create mode 100644 drivers/mempool/dpaa/rte_mempool_dpaa_version.map",
    "diff": "diff --git a/drivers/mempool/dpaa/Makefile b/drivers/mempool/dpaa/Makefile\nnew file mode 100644\nindex 0000000..45a1f7b\n--- /dev/null\n+++ b/drivers/mempool/dpaa/Makefile\n@@ -0,0 +1,65 @@\n+#   BSD LICENSE\n+#\n+#   Copyright(c) 2016 NXP. All rights reserved.\n+#   All rights reserved.\n+#\n+#   Redistribution and use in source and binary forms, with or without\n+#   modification, are permitted provided that the following conditions\n+#   are met:\n+#\n+#     * Redistributions of source code must retain the above copyright\n+#       notice, this list of conditions and the following disclaimer.\n+#     * Redistributions in binary form must reproduce the above copyright\n+#       notice, this list of conditions and the following disclaimer in\n+#       the documentation and/or other materials provided with the\n+#       distribution.\n+#     * Neither the name of NXP nor the names of its\n+#       contributors may be used to endorse or promote products derived\n+#       from this software without specific prior written permission.\n+#\n+#   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n+#   \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n+#   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n+#   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n+#   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n+#   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n+#   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n+#   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n+#   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n+#   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n+#   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n+\n+include $(RTE_SDK)/mk/rte.vars.mk\n+\n+#\n+# library name\n+#\n+LIB = librte_mempool_dpaa.a\n+\n+ifeq ($(CONFIG_RTE_LIBRTE_DPAA2_DEBUG_INIT),y)\n+CFLAGS += -O0 -g\n+CFLAGS += \"-Wno-error\"\n+else\n+CFLAGS += -O3\n+CFLAGS += $(WERROR_FLAGS)\n+endif\n+CFLAGS += -D _GNU_SOURCE\n+\n+CFLAGS += -I$(RTE_SDK)/drivers/bus/dpaa\n+CFLAGS += -I$(RTE_SDK)/drivers/bus/dpaa/include/\n+CFLAGS += -I$(RTE_SDK)/drivers/mempool/dpaa\n+CFLAGS += -I$(RTE_SDK)/lib/librte_mempool\n+\n+# versioning export map\n+EXPORT_MAP := rte_mempool_dpaa_version.map\n+\n+# Lbrary version\n+LIBABIVER := 1\n+\n+# all source are stored in SRCS-y\n+#\n+SRCS-$(CONFIG_RTE_LIBRTE_DPAA_MEMPOOL) += dpaa_mempool.c\n+\n+LDLIBS += -lrte_bus_dpaa\n+\n+include $(RTE_SDK)/mk/rte.lib.mk\ndiff --git a/drivers/mempool/dpaa/dpaa_mempool.c b/drivers/mempool/dpaa/dpaa_mempool.c\nnew file mode 100644\nindex 0000000..3b96cbd\n--- /dev/null\n+++ b/drivers/mempool/dpaa/dpaa_mempool.c\n@@ -0,0 +1,264 @@\n+/*-\n+ *   BSD LICENSE\n+ *\n+ *   Copyright 2017 NXP.\n+ *   All rights reserved.\n+ *\n+ *   Redistribution and use in source and binary forms, with or without\n+ *   modification, are permitted provided that the following conditions\n+ *   are met:\n+ *\n+ *     * Redistributions of source code must retain the above copyright\n+ *       notice, this list of conditions and the following disclaimer.\n+ *     * Redistributions in binary form must reproduce the above copyright\n+ *       notice, this list of conditions and the following disclaimer in\n+ *       the documentation and/or other materials provided with the\n+ *       distribution.\n+ *     * Neither the name of NXP nor the names of its\n+ *       contributors may be used to endorse or promote products derived\n+ *       from this software without specific prior written permission.\n+ *\n+ *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n+ *   \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n+ *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n+ *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n+ *   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n+ *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n+ *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n+ *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n+ *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n+ *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n+ *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n+ */\n+\n+/* System headers */\n+#include <stdio.h>\n+#include <inttypes.h>\n+#include <unistd.h>\n+#include <limits.h>\n+#include <sched.h>\n+#include <signal.h>\n+#include <pthread.h>\n+#include <sys/types.h>\n+#include <sys/syscall.h>\n+\n+#include <rte_config.h>\n+#include <rte_byteorder.h>\n+#include <rte_common.h>\n+#include <rte_log.h>\n+#include <rte_debug.h>\n+#include <rte_memory.h>\n+#include <rte_memzone.h>\n+#include <rte_tailq.h>\n+#include <rte_eal.h>\n+#include <rte_malloc.h>\n+#include <rte_ring.h>\n+\n+#include <dpaa_mempool.h>\n+\n+struct pool_info_entry rte_dpaa_pool_table[DPAA_MAX_BPOOLS];\n+\n+static void\n+dpaa_buf_free(struct pool_info_entry *bp_info, uint64_t addr)\n+{\n+\tstruct bm_buffer buf;\n+\tint ret;\n+\n+\tDPAA_MEMPOOL_DEBUG(\"Free 0x%lx to bpid: %d\", addr, bp_info->bpid);\n+\n+\tbm_buffer_set64(&buf, addr);\n+retry:\n+\tret = bman_release(bp_info->bp, &buf, 1, 0);\n+\tif (ret) {\n+\t\tDPAA_MEMPOOL_DEBUG(\"BMAN busy. Retrying...\");\n+\t\tcpu_spin(CPU_SPIN_BACKOFF_CYCLES);\n+\t\tgoto retry;\n+\t}\n+}\n+\n+static int\n+dpaa_mbuf_create_pool(struct rte_mempool *mp)\n+{\n+\tstruct bman_pool *bp;\n+\tstruct bm_buffer bufs[8];\n+\tuint8_t bpid;\n+\tint num_bufs = 0, ret = 0;\n+\tstruct bman_pool_params params = {\n+\t\t.flags = BMAN_POOL_FLAG_DYNAMIC_BPID\n+\t};\n+\n+\tMEMPOOL_INIT_FUNC_TRACE();\n+\n+\tbp = bman_new_pool(&params);\n+\tif (!bp) {\n+\t\tDPAA_MEMPOOL_ERR(\"bman_new_pool() failed\");\n+\t\treturn -ENODEV;\n+\t}\n+\tbpid = bman_get_params(bp)->bpid;\n+\n+\t/* Drain the pool of anything already in it. */\n+\tdo {\n+\t\t/* Acquire is all-or-nothing, so we drain in 8s,\n+\t\t * then in 1s for the remainder.\n+\t\t */\n+\t\tif (ret != 1)\n+\t\t\tret = bman_acquire(bp, bufs, 8, 0);\n+\t\tif (ret < 8)\n+\t\t\tret = bman_acquire(bp, bufs, 1, 0);\n+\t\tif (ret > 0)\n+\t\t\tnum_bufs += ret;\n+\t} while (ret > 0);\n+\tif (num_bufs)\n+\t\tDPAA_MEMPOOL_WARN(\"drained %u bufs from BPID %d\",\n+\t\t\t\t  num_bufs, bpid);\n+\n+\trte_dpaa_pool_table[bpid].mp = mp;\n+\trte_dpaa_pool_table[bpid].bpid = bpid;\n+\trte_dpaa_pool_table[bpid].size = mp->elt_size;\n+\trte_dpaa_pool_table[bpid].bp = bp;\n+\trte_dpaa_pool_table[bpid].meta_data_size =\n+\t\tsizeof(struct rte_mbuf) + rte_pktmbuf_priv_size(mp);\n+\trte_dpaa_pool_table[bpid].dpaa_ops_index = mp->ops_index;\n+\tmp->pool_data = (void *)&rte_dpaa_pool_table[bpid];\n+\n+\tDPAA_MEMPOOL_INFO(\"BMAN pool created for bpid =%d\", bpid);\n+\treturn 0;\n+}\n+\n+static void\n+dpaa_mbuf_free_pool(struct rte_mempool *mp)\n+{\n+\tstruct pool_info_entry *bp_info = DPAA_MEMPOOL_TO_POOL_INFO(mp);\n+\n+\tMEMPOOL_INIT_FUNC_TRACE();\n+\n+\tbman_free_pool(bp_info->bp);\n+\tDPAA_MEMPOOL_INFO(\"BMAN pool freed for bpid =%d\", bp_info->bpid);\n+}\n+\n+static int\n+dpaa_mbuf_free_bulk(struct rte_mempool *pool,\n+\t\t    void *const *obj_table,\n+\t\t    unsigned int n)\n+{\n+\tstruct pool_info_entry *bp_info = DPAA_MEMPOOL_TO_POOL_INFO(pool);\n+\tint ret;\n+\tunsigned int i = 0;\n+\n+\tDPAA_MEMPOOL_DEBUG(\" Request to free %d buffers in bpid = %d\",\n+\t\t\t   n, bp_info->bpid);\n+\n+\tret = rte_dpaa_portal_init((void *)0);\n+\tif (ret) {\n+\t\tDPAA_MEMPOOL_ERR(\"rte_dpaa_portal_init failed with ret: %d\",\n+\t\t\t\t ret);\n+\t\treturn 0;\n+\t}\n+\n+\twhile (i < n) {\n+\t\tdpaa_buf_free(bp_info, (uint64_t)rte_mempool_virt2phy(pool,\n+\t\t\t      obj_table[i]) + bp_info->meta_data_size);\n+\t\ti = i + 1;\n+\t}\n+\n+\tDPAA_MEMPOOL_DEBUG(\" freed %d buffers in bpid =%d\", n, bp_info->bpid);\n+\n+\treturn 0;\n+}\n+\n+static int\n+dpaa_mbuf_alloc_bulk(struct rte_mempool *pool,\n+\t\t     void **obj_table,\n+\t\t     unsigned int count)\n+{\n+\tstruct rte_mbuf **m = (struct rte_mbuf **)obj_table;\n+\tstruct bm_buffer bufs[DPAA_MBUF_MAX_ACQ_REL];\n+\tstruct pool_info_entry *bp_info;\n+\tvoid *bufaddr;\n+\tint i, ret;\n+\tunsigned int n = 0;\n+\n+\tbp_info = DPAA_MEMPOOL_TO_POOL_INFO(pool);\n+\n+\tDPAA_MEMPOOL_DEBUG(\" Request to alloc %d buffers in bpid = %d\",\n+\t\t    count, bp_info->bpid);\n+\n+\tif (unlikely(count >= (RTE_MEMPOOL_CACHE_MAX_SIZE * 2))) {\n+\t\tDPAA_MEMPOOL_ERR(\"Unable to allocate requested (%u) buffers\",\n+\t\t\t\t count);\n+\t\treturn -1;\n+\t}\n+\n+\tret = rte_dpaa_portal_init((void *)0);\n+\tif (ret) {\n+\t\tDPAA_MEMPOOL_ERR(\"rte_dpaa_portal_init failed with ret: %d\",\n+\t\t\t\t ret);\n+\t\treturn 0;\n+\t}\n+\n+\twhile (n < count) {\n+\t\t/* Acquire is all-or-nothing, so we drain in 7s,\n+\t\t * then the remainder.\n+\t\t */\n+\t\tif ((count - n) > DPAA_MBUF_MAX_ACQ_REL) {\n+\t\t\tret = bman_acquire(bp_info->bp, bufs,\n+\t\t\t\t\t   DPAA_MBUF_MAX_ACQ_REL, 0);\n+\t\t} else {\n+\t\t\tret = bman_acquire(bp_info->bp, bufs, count - n, 0);\n+\t\t}\n+\t\t/* In case of less than requested number of buffers available\n+\t\t * in pool, qbman_swp_acquire returns 0\n+\t\t */\n+\t\tif (ret <= 0) {\n+\t\t\tDPAA_MEMPOOL_DEBUG(\"Buffer acquire failed with\"\n+\t\t\t\t\t   \" err code: %d\", ret);\n+\t\t\t/* The API expect the exact number of requested\n+\t\t\t * buffers. Releasing all buffers allocated\n+\t\t\t */\n+\t\t\tdpaa_mbuf_free_bulk(pool, obj_table, n);\n+\t\t\treturn -1;\n+\t\t}\n+\t\t/* assigning mbuf from the acquired objects */\n+\t\tfor (i = 0; (i < ret) && bufs[i].addr; i++) {\n+\t\t\t/* TODO-errata - objerved that bufs may be null\n+\t\t\t * i.e. first buffer is valid, remaining 6 buffers\n+\t\t\t * may be null.\n+\t\t\t */\n+\t\t\tbufaddr = (void *)rte_dpaa_mem_ptov(bufs[i].addr);\n+\t\t\tm[n] = (struct rte_mbuf *)((char *)bufaddr\n+\t\t\t\t\t\t- bp_info->meta_data_size);\n+\t\t\trte_mbuf_refcnt_set(m[n], 1);\n+\t\t\tDPAA_MEMPOOL_DEBUG(\"Acquired %p address %p from BMAN\",\n+\t\t\t\t\t   (void *)bufaddr, (void *)m[n]);\n+\t\t\tn++;\n+\t\t}\n+\t}\n+\n+\tDPAA_MEMPOOL_DEBUG(\" allocated %d buffers from bpid =%d\",\n+\t\t\t   n, bp_info->bpid);\n+\treturn 0;\n+}\n+\n+static unsigned int\n+dpaa_mbuf_get_count(const struct rte_mempool *mp)\n+{\n+\tstruct pool_info_entry *bp_info;\n+\n+\tMEMPOOL_INIT_FUNC_TRACE();\n+\n+\tbp_info = DPAA_MEMPOOL_TO_POOL_INFO(mp);\n+\n+\treturn bman_query_free_buffers(bp_info->bp);\n+}\n+\n+\n+struct rte_mempool_ops dpaa_mpool_ops = {\n+\t.name = \"dpaa\",\n+\t.alloc = dpaa_mbuf_create_pool,\n+\t.free = dpaa_mbuf_free_pool,\n+\t.enqueue = dpaa_mbuf_free_bulk,\n+\t.dequeue = dpaa_mbuf_alloc_bulk,\n+\t.get_count = dpaa_mbuf_get_count,\n+};\n+\n+MEMPOOL_REGISTER_OPS(dpaa_mpool_ops);\ndiff --git a/drivers/mempool/dpaa/dpaa_mempool.h b/drivers/mempool/dpaa/dpaa_mempool.h\nnew file mode 100644\nindex 0000000..b097667\n--- /dev/null\n+++ b/drivers/mempool/dpaa/dpaa_mempool.h\n@@ -0,0 +1,78 @@\n+/*-\n+ *   BSD LICENSE\n+ *\n+ *   Copyright 2017 NXP.\n+ *   All rights reserved.\n+ *\n+ *   Redistribution and use in source and binary forms, with or without\n+ *   modification, are permitted provided that the following conditions\n+ *   are met:\n+ *\n+ *     * Redistributions of source code must retain the above copyright\n+ *       notice, this list of conditions and the following disclaimer.\n+ *     * Redistributions in binary form must reproduce the above copyright\n+ *       notice, this list of conditions and the following disclaimer in\n+ *       the documentation and/or other materials provided with the\n+ *       distribution.\n+ *     * Neither the name of NXP nor the names of its\n+ *       contributors may be used to endorse or promote products derived\n+ *       from this software without specific prior written permission.\n+ *\n+ *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n+ *   \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n+ *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n+ *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n+ *   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n+ *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n+ *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n+ *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n+ *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n+ *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n+ *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n+ */\n+#ifndef __DPAA_MEMPOOL_H__\n+#define __DPAA_MEMPOOL_H__\n+\n+/* System headers */\n+#include <stdio.h>\n+#include <stdbool.h>\n+#include <inttypes.h>\n+#include <unistd.h>\n+#include <unistd.h>\n+\n+#include <rte_mempool.h>\n+\n+#include <rte_dpaa_bus.h>\n+#include <rte_dpaa_logs.h>\n+\n+#include <fsl_usd.h>\n+#include <fsl_bman.h>\n+\n+#define CPU_SPIN_BACKOFF_CYCLES               512\n+\n+/* total number of bpools on SoC */\n+#define DPAA_MAX_BPOOLS\t256\n+\n+/* Maximum release/acquire from BMAN */\n+#define DPAA_MBUF_MAX_ACQ_REL  8\n+\n+struct pool_info_entry {\n+\tstruct rte_mempool *mp;\n+\tstruct bman_pool *bp;\n+\tuint32_t bpid;\n+\tuint32_t size;\n+\tuint32_t meta_data_size;\n+\tint32_t dpaa_ops_index;\n+};\n+\n+#define DPAA_MEMPOOL_TO_POOL_INFO(__mp) \\\n+\t(struct pool_info_entry *)__mp->pool_data\n+\n+#define DPAA_MEMPOOL_TO_BPID(__mp) \\\n+\t((struct pool_info_entry *)__mp->pool_data)->bpid\n+\n+extern struct pool_info_entry rte_dpaa_pool_table[DPAA_MAX_BPOOLS];\n+\n+#define DPAA_BPID_TO_POOL_INFO(__bpid) (&rte_dpaa_pool_table[__bpid])\n+\n+#endif\ndiff --git a/drivers/mempool/dpaa/rte_mempool_dpaa_version.map b/drivers/mempool/dpaa/rte_mempool_dpaa_version.map\nnew file mode 100644\nindex 0000000..5be8f56\n--- /dev/null\n+++ b/drivers/mempool/dpaa/rte_mempool_dpaa_version.map\n@@ -0,0 +1,6 @@\n+DPDK_17.08 {\n+\tglobal:\n+\n+\trte_dpaa_pool_table;\n+\n+};\n",
    "prefixes": [
        "dpdk-dev",
        "v2",
        "19/40"
    ]
}