get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 18180,
    "url": "http://patches.dpdk.org/api/patches/18180/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1482180853-18823-23-git-send-email-hemant.agrawal@nxp.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": "<1482180853-18823-23-git-send-email-hemant.agrawal@nxp.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1482180853-18823-23-git-send-email-hemant.agrawal@nxp.com",
    "date": "2016-12-19T20:54:01",
    "name": "[dpdk-dev,PATCHv2,22/34] net/dpaa2: attach the buffer pool to dpni",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "b6b761ab618566429839cc3a23a1463be70168a5",
    "submitter": {
        "id": 477,
        "url": "http://patches.dpdk.org/api/people/477/?format=api",
        "name": "Hemant Agrawal",
        "email": "hemant.agrawal@nxp.com"
    },
    "delegate": {
        "id": 319,
        "url": "http://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1482180853-18823-23-git-send-email-hemant.agrawal@nxp.com/mbox/",
    "series": [],
    "comments": "http://patches.dpdk.org/api/patches/18180/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/18180/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 1E9FAFA78;\n\tMon, 19 Dec 2016 16:22:13 +0100 (CET)",
            "from NAM01-SN1-obe.outbound.protection.outlook.com\n\t(mail-sn1nam01on0070.outbound.protection.outlook.com [104.47.32.70])\n\tby dpdk.org (Postfix) with ESMTP id 35310FAB6\n\tfor <dev@dpdk.org>; Mon, 19 Dec 2016 16:21:50 +0100 (CET)",
            "from BN3PR0301CA0044.namprd03.prod.outlook.com (10.160.152.140) by\n\tBN6PR03MB2467.namprd03.prod.outlook.com (10.168.223.21) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id\n\t15.1.789.14; Mon, 19 Dec 2016 15:21:48 +0000",
            "from BL2FFO11FD056.protection.gbl (2a01:111:f400:7c09::194) by\n\tBN3PR0301CA0044.outlook.office365.com (2a01:111:e400:401e::12) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.789.14 via\n\tFrontend Transport; Mon, 19 Dec 2016 15:21:48 +0000",
            "from az84smr01.freescale.net (192.88.158.2) by\n\tBL2FFO11FD056.mail.protection.outlook.com (10.173.161.184) with\n\tMicrosoft\n\tSMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id\n\t15.1.789.10 via Frontend Transport; Mon, 19 Dec 2016 15:21:48 +0000",
            "from bf-netperf1.idc ([10.232.134.28])\n\tby az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id\n\tuBJFKMhl029110; Mon, 19 Dec 2016 08:21:44 -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;\n\tnxp.com; \n\tdkim=none (message not signed) header.d=none;",
        "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": "Hemant Agrawal <hemant.agrawal@nxp.com>",
        "To": "<dev@dpdk.org>",
        "CC": "<thomas.monjalon@6wind.com>, <bruce.richardson@intel.com>,\n\t<shreyansh.jain@nxp.com>, <john.mcnamara@intel.com>,\n\t<ferruh.yigit@intel.com>, <jerin.jacob@caviumnetworks.com>,\n\tHemant Agrawal <hemant.agrawal@nxp.com>",
        "Date": "Tue, 20 Dec 2016 02:24:01 +0530",
        "Message-ID": "<1482180853-18823-23-git-send-email-hemant.agrawal@nxp.com>",
        "X-Mailer": "git-send-email 1.9.1",
        "In-Reply-To": "<1482180853-18823-1-git-send-email-hemant.agrawal@nxp.com>",
        "References": "<1480875447-23680-1-git-send-email-hemant.agrawal@nxp.com>\n\t<1482180853-18823-1-git-send-email-hemant.agrawal@nxp.com>",
        "X-EOPAttributedMessage": "0",
        "X-Matching-Connectors": "131266345084821792;\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)(979002)(6009001)(336005)(7916002)(39450400003)(39840400002)(39850400002)(39380400002)(39400400002)(39410400002)(39860400002)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(305945005)(50226002)(77096006)(8676002)(36756003)(5890100001)(626004)(189998001)(85426001)(38730400001)(5003940100001)(76176999)(104016004)(92566002)(8936002)(50986999)(81166006)(81156014)(8666005)(86362001)(356003)(106466001)(33646002)(97736004)(68736007)(2351001)(2906002)(48376002)(69596002)(50466002)(6666003)(105606002)(2950100002)(6916009)(110136003)(47776003)(4326007)(5660300001)(7059030)(969003)(989001)(999001)(1009001)(1019001);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR03MB2467;\n\tH:az84smr01.freescale.net; FPR:; \n\tSPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; BL2FFO11FD056;\n\t1:bhtYUYs/wPp080/4lT2Z2mjB/sXyvUBO27NM70iQ4BEctmYhuHK+uufSWfosMFNnkidKBFL6oOenmFvOO3dg6OUel3Q+Knk0Xj9CJjOGq+E0G6YKg61WpGUIHOs5cfdXAaBgM5yJK670wYJilIjArg12Vpwsc1tM86dCxkpKg/swte6kwr2RQYld8PAzxcOLf/g6pMYKXUHybUlWpnrqEcgb8ymyI6DQRdszUeXM3p9xNcmZEciKxODo+Zl9G9kDa5bwbUWlO1SuzziNIfpQuctjlzdDhOeR2XywtLUwPeymaq2DKQmuIkIhmqAaFAyuTQA2HtCHRwWgV24AxVuDa1gFED5YutcCs7bewKbHewqCGRNo/rgU649SRtr9FaJymG5vO3p4OeitPpkZFNCuf1vCHQawiwSKviq2kYlD0i6WzAxdD6fgRtKYLnI8Y4kWain63f30nngvlw7TSbv5JVDcKcN6u37O5x3C9SE2Ukq56E/KHGTs/b8KZpLuegL2ExkMuDrp+x0W2Yg4jQNSZHWfE4NsMLov3w71cX6m7kT6zi1m88M1f7uat4U/67fBDTrLUPztYMfs16BZyOF+LBzRY+AfsSYcc2QUAZMuGjaoWPSeFeUqVmx9QaeKPr/9e2FbApl3Am2m7SdW7KiM1wqpu/oW303aCbfinYkZMXaKPSqHQiFE29L3omtmhnZBTERbsA9RYCQfmPH1R0NAHMywE1z6VkCoV/WAWTXPtK+Mfzyp18n18ldBlZyoV8yUETZMZ8IFhJgCuyHfOJnZAQ==",
            "1; BN6PR03MB2467;\n\t3:EAbkvcrXFksS0Wl7re8HNWG2jj0kjwZ9uI6y5I/BqyOzEI/F0EQTbcX/KSBBBY+NGRIcNdG1A1T3iuZS4dRb9lIuhaOOLY2R3H372iF8o1kJjNPJ0oTFDsNGv0z0y2BOyc2vtcDPgy+Z5t5Hl6kZT5Rv08gJ/72ixMcu0SMpy5dY5iaQME6KaoRdBkSncL//KfihMoJK0NHbZ3JsAZPzj+7kjFlvmwSGuiM/rjsKCVqvQeetZ8fEMWWL4m5gMlJc23hUpNikZXa681vVXVATh2IxAF5xysn5pEfPIB4meXv+u3qVRBB8K99zLyvzQ5CsF3aLKGZ2h9RrwwKGQ0lEG35+M+kTmfEO+KvImASxBDf5TtIuNFitZSlSVhMNjhKw;\n\t25:9a6lTYEYmCijui756JRRF2wNd7ay2YNHuqMuTKYmTMIzrz5MUAVVWrmfue4zM6AMK07KG+V13hNniAy1S6FRVR8aayxo3N0eSvhkTNFtwM3ylLe2SO6Fmc32N/oeAYzVhw2/AG63xnZuzFZsCYiEeTHsCoZJT+TdALrRo3tmyxB5nOdoT0N5NZQ++7lRAwrjMoTaHcOBmsFM3kuiC2kEo/fq/c509vosiuBrj8j1F3xH3OVsoYC68WsmpLNRwx2VYfknJWTmtWtTjv3gR4QAAPm6iZstblIctYEr6pfFruo3+d5iwfYdCnwOrw4C3WKJ5rcTIVgvqiAzkDK1fPVzmAIgbeT99W6g2Aa/NvQhUs8sNg2Ii7OmsOYZUHy0C5YxdfRs0y9Rk1Dt3KUEZo/QSv7m6jFiSWuQXsFXhZBPkSAZ2N7puhK80vUBrxlAoNx+1JRW7UOK0BiQYwhDYxFZKQ==",
            "1; BN6PR03MB2467;\n\t31:CsPTKMLOprpNOs2DO/IJO/FRE65HXbpCRa911bdv/ls4AXYOCNFN/tn/q3HHtRy4DtuOZhZOd1z6cF0tft3PIhuL03S8l8a+ciEvleytsNeaOxquniOVbfPvqdsipnO6Dv7gSXhfW5rmNZ1FCYoU5V7SCPivXDc3guSg1MTp1WdvVf+4zLg2xJ6tpXBC1iJwSNCihNdM5gP0U0BKaasZW8lyJC+k/lJ83K6h4WFyXbIsrlLGuw3uRMk8y+GZrMd0PupmF0iwf/v9eDtdNnS88Q==",
            "1; BN6PR03MB2467;\n\t4:6LAAiTXWGZuHUDeFXlhUDUO2GRUUhsb/nQtlUE6V2S0GeZiCFq2oNvgw/uGK68+7JsV9Fv2bYDdIBsmzGNekZoD3vKyQD/SJXG9FLaA4N6fxAx/Grdy6Ayb9FldTv2EDmyN8Pt9peLu9lGCmXMyXOpFp+gJGBy7eaJoyaMwcq+z4amfxfovq+7p4puEt1dktzf8j3EH3gFxeQOafe57WE61d5jESZUHioXU2lTrKQuhlauVtcDujO2AvC4jTcI+OQ1/zXd1o16RIaCweN1+nUkVIwAO1kG0hdcbzuQID2drxgSsad6arNeHY1CEtJqqaxJiD+A7+M45sSIo23ZANwUsyQ3Zx06VFFv2fSESoAayNc6DeYAzIrHkKbSq6XY6GdhO5gX5cMAdX62o570TcKEEgav/LPomWlas6v/YPHkVLOL1lNQHTh2RVTPmby22xDo7ZvGyclg5ZVp/6RxiLbcSDYCShlDjDgoKJgl1FQPmGb/H13awW2ghoUX/PpjQmhWgJZ8KieTALS78cFDYOdbQAjarthTFqGOHZnvjZUTa1OetJ9IxtfXdhK6kc0ekm7anhitNHeO71N5vnfxuju51+0pNp6ngeN28Y8IxWktXiXGQ0b1rk627w1EQ9Y3tpD3ufC/RvcTvblSWmTK2U0h0zKy+fxS7GuwjAzMqxwvVsUGrNtMOMwi9sAo9BcWzelAgNn4QeCOVDay/R7/FgKadvHW7/9j+itTYsxYUesVHcf253OzT5A8BrJOgyX2bq",
            "=?us-ascii?Q?1; BN6PR03MB2467;\n\t23:spBxFc8tgLbEg33BgEKeeVreU7JKlr162fsuCqtwB?=\n\tAbOMGGAnlaMeBj3zhWY2oF5ny9yjGCTeqr4MKmNvH6dxNm6Pe6RMhppzRSFhw9d5BRoD7bTuHX17W6o9DxAxVWY7qeZ8Jsda//GInNSTv4dB35EyaYgzFkjPAzGwej6/Z3BfbvoqElxNqaxuqPByUkrwSgg/mVF5TUlA/5Ah4gas3phBi+zpjnkTv+b9IbchPqZw9DAzRKmncC/U/avSFTTbk1W9pJh9EK4fI602yGVaTGcV0E+d6zLL64t5hXXPXthGUhYDpY12j2LL1qiCrGZQi7xZ9giX5X0gkmyNCvi+FfH+ca3hCFF654n7gr6H99Pk1vdfqYOOFQQW+4YgMdS+wpenDCPL2+Lu+XPcUipwrmJLOewHfkg6Sl1C7MzaahyptPeNYMRr+KSIbtxo1ZVJllFIJVfCArlmwGYeLLDPAeoHO4oN87xb5UwFW6WZX1XbCyb/nQqgg3d3TL0ZICDatBtEOqaZu0jx3uLm6jJ3O7N2+l1gm+HVh6e0jL1hvOHvj/8N8pOL4Ed/vYAFxVGJG2t++iaRV1KZoVRFwLX/sL74OgG2jbZemaEiOI4k514A0Cr/Mqg0++Ks9gmR++FnkBzC1wM8RQ/iSbpkRmHFNSS+WiVrGXTYk7zpAwsmpjWmYyU/WWGH62hGK04ZJxpBLGr/9d1px1S2NviVfJvCHS39hlVJy0EWgNEHmBpx3wSR3BiksK0GLRaoLKvQa/mzTHGxrW+fHm8X85YNCTzVzYBa/39Gfg3J4/unqHeWcc3sxBpJxEM48nU/SSCkWCih5AZu3ia0jzdUY9B6OX7894gjUdc9pRm0qbJT72834PLftfxYiHetcjeqWaCB5BcLQGY5zZebXESEd3oFtAyVuCD2hJXHG2qh+UGXLVJ6u69KPyrPmXaW3cxcOtk3IgoaDhUAnLceas1jVxGQKg9yDoy6vx9rLx78qhRne48paPforWUR3S6vMN5ShtbtVq9ctYHA1Qeegnl96QMrNsYyUVBcvhLQSFUTHQy4xTwFLOf+dGoWKgghCSsSUIVJTo3qyuMQIcGbjfWus2orJHIBH1k3Si+5pN5CAgNMy3XlMmuE25oOeEfa93S2Lsgh1K+K+kFYA5OPCXjWsQ2PM0FhIyUV6plpjTdTEershqAgKDuDHd+42VZp79Adlz/2duWV0tGNBW0/czh7nUE9sJ9Ti2G2q+Jw3TAHodPe88thoBIxufniP39C1HrcEucmUb+UthM8jE2zvu0XZyVOczjMgFvHyjqXHiCqnte/0Tebf3m9UuOG9JcQUkxvD6nz5YTfyoZJ2MBmeqSnjru4L5cCuj4O0uJqHE6WJt3X4OP8TWekqshy6oUToWpfGMw56RhsKcs7erSK3GoNLXGb19lWw==",
            "1; BN6PR03MB2467;\n\t6:RKsgMV1t6g3SjyjuR0ipEiAMnCORa/gfpsN2KtlIt1I8eEnZKEf92k8FkDLoVrdoJyL17cOgH0lG97XVgvRExrX2/fyAWzUZCoJ782PAiC+U5l92xqg1KHHIMo8MQaVw7lYL3MXJl3RI8KoG5vHeH7yrteU8/ZqP/iZo2460HOp4qy428zWxnGuigxQPHvSFjuLSNiTbK6EOaa7d/aY6758aTN1otTkgemxyPD5KZLFildBLVbzVjzsCAkWc/aQu65ZhgkQ1D/H/YC3XkIr2Yj5G+nM0HIQINFyF4iudOJ4DG6t5T7szJsE8tiVRXT8lNoCB56YxrCfDQxwIhyjOuhBAYCwSR/Ux66vKLJLWSS7nPVU5Ei8cmtUgLP/k9FOax1/gT/c0yJR1JXw1Xv/LLZr2ixPuDEAHQuCd2mfqd72FxHEmDjZQXLPkKfDlXX5T;\n\t5:EEbVJGaSGgL+kkiM14tCdi9yUJAyb7xH/1BHrz8Z4dFj2SuvpSjZ1CK6xnxbPeFJ1UrqId7r1YLDcY+azd+oSBL7YXmy55r8ETeTvOcjU/2yovjHydqeCTb59QLXJPjSWJKcn1WNGUr9s9hFnQfFAg7Gkm5QwYSPbLOfmSsqa/TZgAkpervpFkD+hyzt0y77;\n\t24:lNOhn+RLgadQkIGD/E+NzqLeEtoOEfX1dr3uRT09TKNstfAhm1dKVy1cQAqJa295SenO09d5EEfrd7UFFxVBBUeT+OLxEP400ZX+HZDNH+M=",
            "1; BN6PR03MB2467;\n\t7:7EJ42IyV8YnVJtjYEf/1TQABNqdpodvxvPTn6u3iB3mqavxR8PuLbvGYNkd0kN5ENTh3Qp2FEo2ON7gBq39/KhhFbnNnoUnhEoUqh4YO9k6mf7fRnR/L69woE0CosUS+ZSNDwajhzswaHZDQS3f2PAAgX5rUq07vsNHEWg1BrOySeA0JcLnzW7ariltekQy+aLuzBfSwLqyZl+QK6zLr7EuJhACgjTRtTe1vQJppQHWYoim/lHHjpUoDQQ8Pcj7Wa+aB5JF0/sHCP1bt53Aya/0wemweKzFc5rRZftPXfKch3/vMfjvn5SJvdQwalBsNpwAU6arj2XCH1WuVa8mVFqjGisO00HgsoRyQ/Z7uFYye0/CLYwFQHplLyxXdCpIPtHyrgfT8TOa616oH1RSrffSV8Z+Q9c5l5jHaaVT4ExTX4rSgRDUzlyKsqpNjPeGfKhBWoJEEL3OTcC8++hKqqg=="
        ],
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-MS-Office365-Filtering-Correlation-Id": "74e3cdbd-aef5-4d4e-3fe1-08d42822c033",
        "X-Microsoft-Antispam": "UriScan:; BCL:0; PCL:0; RULEID:(22001);\n\tSRVR:BN6PR03MB2467; ",
        "X-Microsoft-Antispam-PRVS": "<BN6PR03MB2467C55E913841CECCB07CCC89910@BN6PR03MB2467.namprd03.prod.outlook.com>",
        "X-Exchange-Antispam-Report-Test": "UriScan:(185117386973197);",
        "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(6095060)(601004)(2401047)(8121501046)(5005006)(13015025)(13023025)(13024025)(13017025)(13018025)(10201501046)(3002001)(6055026)(6096035)(20161123559025)(20161123565025)(20161123563025)(20161123556025)(20161123561025);\n\tSRVR:BN6PR03MB2467; BCL:0; PCL:0; RULEID:(400006); SRVR:BN6PR03MB2467;",
        "X-Forefront-PRVS": "01613DFDC8",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "19 Dec 2016 15:21:48.2482\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": "BN6PR03MB2467",
        "Subject": "[dpdk-dev] [PATCHv2 22/34] net/dpaa2: attach the buffer pool to dpni",
        "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 patch configures a MC-DPNI based DPAA2 PMD network\nport with a DPBP based buffer pool.\n\nSigned-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>\n---\n drivers/common/dpaa2/dpio/dpaa2_hw_pvt.h | 10 ++++++\n drivers/net/dpaa2/Makefile               |  2 ++\n drivers/net/dpaa2/base/dpaa2_hw_dpni.c   | 57 +++++++++++++++++++++++++++++\n drivers/net/dpaa2/dpaa2_ethdev.c         | 62 ++++++++++++++++++++++++++++++++\n drivers/net/dpaa2/dpaa2_ethdev.h         |  6 ++++\n 5 files changed, 137 insertions(+)",
    "diff": "diff --git a/drivers/common/dpaa2/dpio/dpaa2_hw_pvt.h b/drivers/common/dpaa2/dpio/dpaa2_hw_pvt.h\nindex 08be96c..2c1ab7f 100644\n--- a/drivers/common/dpaa2/dpio/dpaa2_hw_pvt.h\n+++ b/drivers/common/dpaa2/dpio/dpaa2_hw_pvt.h\n@@ -50,6 +50,16 @@\n #define DPAA2_MBUF_MAX_ACQ_REL\t7\n \n #define MAX_BPID 256\n+#define DPAA2_MBUF_HW_ANNOTATION\t64\n+#define DPAA2_FD_PTA_SIZE\t\t64\n+\n+#if (DPAA2_MBUF_HW_ANNOTATION + DPAA2_FD_PTA_SIZE) > RTE_PKTMBUF_HEADROOM\n+#error \"Annotation requirement is more than RTE_PKTMBUF_HEADROOM\"\n+#endif\n+\n+/* we will re-use the HEADROOM for annotation in RX */\n+#define DPAA2_HW_BUF_RESERVE\t0\n+#define DPAA2_PACKET_LAYOUT_ALIGN\t64 /*changing from 256 */\n \n struct dpaa2_dpio_dev {\n \tTAILQ_ENTRY(dpaa2_dpio_dev) next;\ndiff --git a/drivers/net/dpaa2/Makefile b/drivers/net/dpaa2/Makefile\nindex c331270..0e8095a 100644\n--- a/drivers/net/dpaa2/Makefile\n+++ b/drivers/net/dpaa2/Makefile\n@@ -49,6 +49,7 @@ CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc\n CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/mc\n CFLAGS += -I$(RTE_SDK)/drivers/common/dpaa2/qbman/include\n CFLAGS += -I$(RTE_SDK)/drivers/common/dpaa2/dpio\n+CFLAGS += -I$(RTE_SDK)/drivers/pool/dpaa2\n CFLAGS += -I$(RTE_SDK)/lib/librte_eal/linuxapp/eal\n \n # versioning export map\n@@ -62,5 +63,6 @@ SRCS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += dpaa2_ethdev.c\n \n # library dependencies\n DEPDIRS-y += lib/librte_eal\n+DEPDIRS-y += lib/librte_mempool\n \n include $(RTE_SDK)/mk/rte.lib.mk\ndiff --git a/drivers/net/dpaa2/base/dpaa2_hw_dpni.c b/drivers/net/dpaa2/base/dpaa2_hw_dpni.c\nindex c95c083..08f53b3 100644\n--- a/drivers/net/dpaa2/base/dpaa2_hw_dpni.c\n+++ b/drivers/net/dpaa2/base/dpaa2_hw_dpni.c\n@@ -46,6 +46,7 @@\n \n #include <fslmc_logs.h>\n #include <dpaa2_hw_pvt.h>\n+#include <dpaa2_hw_mempool.h>\n \n #include \"../dpaa2_ethdev.h\"\n \n@@ -285,3 +286,59 @@ int dpaa2_remove_flow_dist(\n \t}\n \tkg_cfg->num_extracts = i;\n }\n+\n+int\n+dpaa2_attach_bp_list(struct dpaa2_dev_priv *priv,\n+\t\t     void *blist)\n+{\n+\t/* Function to attach a DPNI with a buffer pool list. Buffer pool list\n+\t * handle is passed in blist.\n+\t */\n+\tint32_t retcode;\n+\tstruct fsl_mc_io *dpni = priv->hw;\n+\tstruct dpni_pools_cfg bpool_cfg;\n+\tstruct dpaa2_bp_list *bp_list = (struct dpaa2_bp_list *)blist;\n+\tstruct dpni_buffer_layout layout;\n+\tint tot_size;\n+\n+\t/* ... rx buffer layout .\n+\t * Check alignment for buffer layouts first\n+\t */\n+\n+\t/* ... rx buffer layout ... */\n+\ttot_size = DPAA2_HW_BUF_RESERVE + RTE_PKTMBUF_HEADROOM;\n+\ttot_size = RTE_ALIGN_CEIL(tot_size,\n+\t\t\t\t  DPAA2_PACKET_LAYOUT_ALIGN);\n+\n+\tmemset(&layout, 0, sizeof(struct dpni_buffer_layout));\n+\tlayout.options = DPNI_BUF_LAYOUT_OPT_DATA_HEAD_ROOM;\n+\n+\tlayout.data_head_room =\n+\t\ttot_size - DPAA2_FD_PTA_SIZE - DPAA2_MBUF_HW_ANNOTATION;\n+\tretcode = dpni_set_buffer_layout(dpni, CMD_PRI_LOW, priv->token,\n+\t\t\t\t\t DPNI_QUEUE_RX, &layout);\n+\tif (retcode) {\n+\t\tPMD_INIT_LOG(ERR, \"Err(%d) in setting rx buffer layout\\n\",\n+\t\t\t     retcode);\n+\t\treturn retcode;\n+\t}\n+\n+\t/*Attach buffer pool to the network interface as described by the user*/\n+\tbpool_cfg.num_dpbp = 1;\n+\tbpool_cfg.pools[0].dpbp_id = bp_list->buf_pool.dpbp_node->dpbp_id;\n+\tbpool_cfg.pools[0].backup_pool = 0;\n+\tbpool_cfg.pools[0].buffer_size =\n+\t\tRTE_ALIGN_CEIL(bp_list->buf_pool.size,\n+\t\t\t       256 /*DPAA2_PACKET_LAYOUT_ALIGN*/);\n+\n+\tretcode = dpni_set_pools(dpni, CMD_PRI_LOW, priv->token, &bpool_cfg);\n+\tif (retcode != 0) {\n+\t\tPMD_INIT_LOG(ERR, \"Error in attaching the buffer pool list\"\n+\t\t\t\t\" bpid = %d Error code = %d\\n\",\n+\t\t\t\tbpool_cfg.pools[0].dpbp_id, retcode);\n+\t\treturn retcode;\n+\t}\n+\n+\tpriv->bp_list = bp_list;\n+\treturn 0;\n+}\ndiff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c\nindex ccd2c2a..ae04cc3 100644\n--- a/drivers/net/dpaa2/dpaa2_ethdev.c\n+++ b/drivers/net/dpaa2/dpaa2_ethdev.c\n@@ -48,6 +48,7 @@\n #include <fslmc_logs.h>\n #include <fslmc_vfio.h>\n #include <dpaa2_hw_pvt.h>\n+#include <dpaa2_hw_mempool.h>\n \n #include \"dpaa2_ethdev.h\"\n \n@@ -64,6 +65,8 @@\n \tdev_info->if_index = priv->hw_id;\n \n \tdev_info->max_mac_addrs = priv->max_mac_filters;\n+\tdev_info->max_rx_pktlen = DPAA2_MAX_RX_PKT_LEN;\n+\tdev_info->min_rx_bufsize = DPAA2_MIN_RX_BUF_SIZE;\n \tdev_info->max_rx_queues = (uint16_t)priv->nb_rx_queues;\n \tdev_info->max_tx_queues = (uint16_t)priv->nb_tx_queues;\n \n@@ -188,6 +191,7 @@\n \tstruct dpni_queue cfg;\n \tuint8_t options = 0;\n \tuint8_t flow_id;\n+\tuint32_t bpid;\n \tint ret;\n \n \tPMD_INIT_FUNC_TRACE();\n@@ -195,6 +199,13 @@\n \tPMD_INIT_LOG(DEBUG, \"dev =%p, queue =%d, pool = %p, conf =%p\",\n \t\t     dev, rx_queue_id, mb_pool, rx_conf);\n \n+\tif (!priv->bp_list || priv->bp_list->mp != mb_pool) {\n+\t\tbpid = mempool_to_bpid(mb_pool);\n+\t\tret = dpaa2_attach_bp_list(priv,\n+\t\t\t\t\t   bpid_info[bpid].bp_list);\n+\t\tif (ret)\n+\t\t\treturn ret;\n+\t}\n \tdpaa2_q = (struct dpaa2_queue *)priv->rx_vq[rx_queue_id];\n \tdpaa2_q->mb_pool = mb_pool; /**< mbuf pool to populate RX ring. */\n \n@@ -389,7 +400,9 @@\n \tstruct fsl_mc_io *dpni_dev;\n \tstruct dpni_attr attr;\n \tstruct dpaa2_dev_priv *priv = eth_dev->data->dev_private;\n+\tstruct dpni_buffer_layout layout;\n \tint i, ret, hw_id;\n+\tint tot_size;\n \n \tPMD_INIT_FUNC_TRACE();\n \n@@ -478,6 +491,55 @@\n \t\treturn -ret;\n \t}\n \n+\t/* ... rx buffer layout ... */\n+\ttot_size = DPAA2_HW_BUF_RESERVE + RTE_PKTMBUF_HEADROOM;\n+\ttot_size = RTE_ALIGN_CEIL(tot_size,\n+\t\t\t\t  DPAA2_PACKET_LAYOUT_ALIGN);\n+\n+\tmemset(&layout, 0, sizeof(struct dpni_buffer_layout));\n+\tlayout.options = DPNI_BUF_LAYOUT_OPT_FRAME_STATUS |\n+\t\t\t\tDPNI_BUF_LAYOUT_OPT_PARSER_RESULT |\n+\t\t\t\tDPNI_BUF_LAYOUT_OPT_DATA_HEAD_ROOM |\n+\t\t\t\tDPNI_BUF_LAYOUT_OPT_PRIVATE_DATA_SIZE;\n+\n+\tlayout.pass_frame_status = 1;\n+\tlayout.data_head_room = tot_size\n+\t\t- DPAA2_FD_PTA_SIZE - DPAA2_MBUF_HW_ANNOTATION;\n+\tlayout.private_data_size = DPAA2_FD_PTA_SIZE;\n+\tlayout.pass_parser_result = 1;\n+\tPMD_INIT_LOG(DEBUG, \"Tot_size = %d, head room = %d, private = %d\",\n+\t\t     tot_size, layout.data_head_room, layout.private_data_size);\n+\tret = dpni_set_buffer_layout(dpni_dev, CMD_PRI_LOW, priv->token,\n+\t\t\t\t     DPNI_QUEUE_RX, &layout);\n+\tif (ret) {\n+\t\tPMD_INIT_LOG(ERR, \"Err(%d) in setting rx buffer layout\", ret);\n+\t\treturn -1;\n+\t}\n+\n+\t/* ... tx buffer layout ... */\n+\tmemset(&layout, 0, sizeof(struct dpni_buffer_layout));\n+\tlayout.options = DPNI_BUF_LAYOUT_OPT_FRAME_STATUS;\n+\tlayout.pass_frame_status = 1;\n+\tret = dpni_set_buffer_layout(dpni_dev, CMD_PRI_LOW, priv->token,\n+\t\t\t\t     DPNI_QUEUE_TX, &layout);\n+\tif (ret) {\n+\t\tPMD_INIT_LOG(ERR, \"Error (%d) in setting tx buffer\"\n+\t\t\t\t  \" layout\", ret);\n+\t\treturn -1;\n+\t}\n+\n+\t/* ... tx-conf and error buffer layout ... */\n+\tmemset(&layout, 0, sizeof(struct dpni_buffer_layout));\n+\tlayout.options = DPNI_BUF_LAYOUT_OPT_FRAME_STATUS;\n+\tlayout.pass_frame_status = 1;\n+\tret = dpni_set_buffer_layout(dpni_dev, CMD_PRI_LOW, priv->token,\n+\t\t\t\t     DPNI_QUEUE_TX_CONFIRM, &layout);\n+\tif (ret) {\n+\t\tPMD_INIT_LOG(ERR, \"Error (%d) in setting tx-conf buffer\"\n+\t\t\t\t  \" layout\", ret);\n+\t\treturn -1;\n+\t}\n+\n \teth_dev->dev_ops = &dpaa2_ethdev_ops;\n \teth_dev->data->drv_name = drivername;\n \ndiff --git a/drivers/net/dpaa2/dpaa2_ethdev.h b/drivers/net/dpaa2/dpaa2_ethdev.h\nindex 2d13137..a56b525 100644\n--- a/drivers/net/dpaa2/dpaa2_ethdev.h\n+++ b/drivers/net/dpaa2/dpaa2_ethdev.h\n@@ -37,6 +37,9 @@\n #include <mc/fsl_dpni.h>\n #include <mc/fsl_mc_sys.h>\n \n+#define DPAA2_MIN_RX_BUF_SIZE 512\n+#define DPAA2_MAX_RX_PKT_LEN  10240 /*WRIOP support*/\n+\n #define MAX_TCS\t\t\tDPNI_MAX_TC\n #define MAX_RX_QUEUES\t\t16\n #define MAX_TX_QUEUES\t\t16\n@@ -57,6 +60,7 @@ struct dpaa2_dev_priv {\n \tvoid *rx_vq[MAX_RX_QUEUES];\n \tvoid *tx_vq[MAX_TX_QUEUES];\n \n+\tstruct dpaa2_bp_list *bp_list; /**<Attached buffer pool list */\n \tuint32_t options;\n \tuint16_t num_dist_per_tc[MAX_TCS];\n \tuint8_t max_mac_filters;\n@@ -71,4 +75,6 @@ int dpaa2_setup_flow_dist(struct rte_eth_dev *eth_dev,\n int dpaa2_remove_flow_dist(struct rte_eth_dev *eth_dev,\n \t\t\t   uint8_t tc_index);\n \n+int dpaa2_attach_bp_list(struct dpaa2_dev_priv *priv, void *blist);\n+\n #endif /* _DPAA2_ETHDEV_H */\n",
    "prefixes": [
        "dpdk-dev",
        "PATCHv2",
        "22/34"
    ]
}