get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 41255,
    "url": "https://patches.dpdk.org/api/patches/41255/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/1529389574-6643-3-git-send-email-anoob.joseph@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": "<1529389574-6643-3-git-send-email-anoob.joseph@caviumnetworks.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1529389574-6643-3-git-send-email-anoob.joseph@caviumnetworks.com",
    "date": "2018-06-19T06:26:14",
    "name": "[2/2] app/crypto-perf: honour cryptodev's min headroom/tailroom",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "a262988f047d7cc376e31d4c6c7612161a1d8c6a",
    "submitter": {
        "id": 893,
        "url": "https://patches.dpdk.org/api/people/893/?format=api",
        "name": "Anoob Joseph",
        "email": "anoob.joseph@caviumnetworks.com"
    },
    "delegate": {
        "id": 22,
        "url": "https://patches.dpdk.org/api/users/22/?format=api",
        "username": "pdelarag",
        "first_name": "Pablo",
        "last_name": "de Lara Guarch",
        "email": "pablo.de.lara.guarch@intel.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/1529389574-6643-3-git-send-email-anoob.joseph@caviumnetworks.com/mbox/",
    "series": [
        {
            "id": 161,
            "url": "https://patches.dpdk.org/api/series/161/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=161",
            "date": "2018-06-19T06:26:12",
            "name": "add head/tailroom requirement for crypto PMDs",
            "version": 1,
            "mbox": "https://patches.dpdk.org/series/161/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/41255/comments/",
    "check": "fail",
    "checks": "https://patches.dpdk.org/api/patches/41255/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 [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 92AB7DE0;\n\tTue, 19 Jun 2018 08:28:15 +0200 (CEST)",
            "from NAM02-SN1-obe.outbound.protection.outlook.com\n\t(mail-sn1nam02on0079.outbound.protection.outlook.com [104.47.36.79])\n\tby dpdk.org (Postfix) with ESMTP id 3E1C71AFF\n\tfor <dev@dpdk.org>; Tue, 19 Jun 2018 08:28:13 +0200 (CEST)",
            "from ajoseph83.caveonetworks.com.caveonetworks.com (115.113.156.2)\n\tby DM6PR07MB4907.namprd07.prod.outlook.com (2603:10b6:5:a3::12)\n\twith Microsoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.863.16;\n\tTue, 19 Jun 2018 06:28:09 +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:X-MS-Exchange-SenderADCheck;\n\tbh=UkQqX92Lv+g6gRJ1wUu5xS0OMMYLjxPBwENLQVzDw+0=;\n\tb=DwBdjpHkCoJ1WwPCdxUsfxWh/XfTRPkCP88Awu8sFlINQNFexm+FR2jbJYjpkeNQ2YLp45gAajVgSrkcQXY811iEbLoKgom4XsCWS4/JlVf6UB20XrsMjXK73P3cLp9clhHuKgtj7mJAYP/1bxOVtC5lonw+deeAUKXTkWmNh6s=",
        "Authentication-Results": "spf=none (sender IP is )\n\tsmtp.mailfrom=Anoob.Joseph@cavium.com; ",
        "From": "Anoob Joseph <anoob.joseph@caviumnetworks.com>",
        "To": "Declan Doherty <declan.doherty@intel.com>,\n\tPablo de Lara <pablo.de.lara.guarch@intel.com>",
        "Cc": "Anoob Joseph <anoob.joseph@caviumnetworks.com>,\n\tAkhil Goyal <akhil.goyal@nxp.com>,\n\tAnkur Dwivedi <ankur.dwivedi@caviumnetworks.com>,\n\tJerin Jacob <jerin.jacob@caviumnetworks.com>,\n\tNarayana Prasad <narayanaprasad.athreya@caviumnetworks.com>, dev@dpdk.org",
        "Date": "Tue, 19 Jun 2018 11:56:14 +0530",
        "Message-Id": "<1529389574-6643-3-git-send-email-anoob.joseph@caviumnetworks.com>",
        "X-Mailer": "git-send-email 2.7.4",
        "In-Reply-To": "<1529389574-6643-1-git-send-email-anoob.joseph@caviumnetworks.com>",
        "References": "<1529389574-6643-1-git-send-email-anoob.joseph@caviumnetworks.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[115.113.156.2]",
        "X-ClientProxiedBy": "BM1PR0101CA0026.INDPRD01.PROD.OUTLOOK.COM\n\t(2603:1096:b00:1a::12) To DM6PR07MB4907.namprd07.prod.outlook.com\n\t(2603:10b6:5:a3::12)",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "f7107e68-c56d-407a-ad9c-08d5d5add4ad",
        "X-Microsoft-Antispam": "UriScan:; BCL:0; PCL:0;\n\tRULEID:(7020095)(4652020)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(5600026)(711020)(2017052603328)(7153060)(7193020);\n\tSRVR:DM6PR07MB4907; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; DM6PR07MB4907;\n\t3:26HXMyoqk6hrd6snlXA1Sl5YaTcJx0Mq9ozDjAGd8b0qM2ShCtZ/vuOKllxRlIZs6i2wCVj5IeklxKCswmX1aYTSa+YDtMUKPugMF87NJRApXsk5Fn7zMEowno3mNs+nnWevGtNb7bGq8d0anG8VQLiFFXQnB8god+xdefSGg7nmjRzbFS8uNHsbtstl1Rk28dyzetTQR/kbnPmbCiZjPntzfHYDMQ9tS3cyKPtL2L0C8LyCR1HUdj6qndjSa5lB;\n\t25:wkJUQKEMBcoyl9a97xB45MoNe/toPxsmw86xBoAL01YderxMrEFTzrC4oW+/aCiapOfQzgW+mEHS3sIc2EhEvHST9AFujNZzn52NYA0Z78EPwsRLn7Y8oD5DnYja0KmdtKzPhiWP+HLsydCenEpz8R8ZZs0bKxm950L8VMhZxK6VIcJ12fcpVVYQyMcc+gLU1oTf+deK800zXJeWzlSKju8QCwXWsr5zVKmXLZXwlwyEhOu6lLrgYoF5F8GDO/zXp3z1cyUvti9tCjw91SYqVZLvGuyN9vg6vHLZLxiwDsWz3g1FF19SjgPRytFr+sVOJIXlWEIcEHTRqnarc6wHpA==;\n\t31:nzOsAWBn6F6YBtyaVHZFMjIlsuuck8FcE5e4V+G9Hg0Pc/GBSn5WgZOakY0wYR1pYlooFmSBwjbdwepGRDXHiuF+zCWOrf7jTRB19VR22Siq7EJuxrZ3XuwLAb/JoKx9vnjxep95GVX/pIhY6chyb87K6g2N7Ro0HKMkExyEFC0rN4b0TuZGyK4iJK8c2iMKWht/FFrFKlfaUd37e4brFIyQ2UvCTUcZLW+YyG+Yqaw=",
            "1; DM6PR07MB4907;\n\t20:8BwU3yoXqqlrz2/GXBgfaDFa6vn617kgodDJ2T+IzMUm0eic5jM4HUV8zEwOHedEVlVjydHZDj1mSxysr/cksH5g/h7c2wA2G4nr8skCeZeR4QVj+YA1qdmkLdcJ0By9oq8n0IpdQWKOZz0mlctM0IT4Cyco1j6Dl8dgR1t1qv4P+6EODjxRQ30koiAsToEyV+u8BF7sVzmBGsarbsM65Jq7mGsRzzQ17glaki7Ha7lbEIRa6tuAcBL5H0ovG/oTZUIJf6N3ewV38LJjuGJdSaTQ8G+UrNxWUl0vU0qw7gxHyxagEsFxriy1/PwvLNzdvBE2ivsAR4KYA76qEdSC6xXHVTxr37Vza3ltsUKxJMEnSH1M5f117tPNPBVe42ky9S5pKxCmexr/yXSN3Cn7rQKdHetGVl5g/sWHYTyvA2BswFNtjOrcYO8tsh0uf0OuqjN3y8YlsWmIjYnbVcJoe8gF9ZsrJ3d1mH9kVG/FTTaoc8ZugXAmT5hYN1xmMC4NlKQSolEPlGfEgMo5gRGmtjW1GorwLJTIaCww0xQ1vmzFBZUirZxz4sD3pWoLN948+SvvEUgQBE2vNx1QBBKdTBOjWju9AhzwWWFCM4NCUBw=;\n\t4:h/nR+CkfYClRzvNahy8VgVu6X8sddjvhw/PgyF2NetUxlQy0lgI4SonHCBIv5hofRYSW+97wy9cwzlGUuI5u/oeq68v/91NvLDgnzXR8r68op2tjy1bmNM5nGzOEPZYRLjoG2rLEUvwAHs8qcWSbF5dM3vlkv1u7yuntGzB41+8pRyuvGZjC5sqhVVx+sbcnjSbJay2UtizexzqZ/mmyZv/M5ERiUpLkZVNonT+gNBtfoN7S2ax6Xnq4XO3UzlFH8WYiiJ6kotPQkgQyt50hvA==",
            "=?us-ascii?Q?1; DM6PR07MB4907;\n\t23:y/t2wN/5tyKQXRxB+wxP7lu1prpy2j9WUHCVHJ7xf?=\n\tTv7p8aS6Z8Tz/aV315r2JYHYjdDsGPVfvdRCjHOJzmnsSTSZLTxbMQm9Ubgax4GAcQhEYvil5bo955hV7p8AbfuHvwye3P6mbWQADosZ5VeynxEBon+mAVlXcpb6F5m2516O5gswrIFwgbc/k8vov0JcE3XMrEaz+dXOFcKiUdvAfu+hB+pBiuC7elCdCYiBEf6Tou374krj2DXk0vCnbab5bNhGPDW8HK+tos1PdQnJDfvdyX85/iPXStBc6thPqgiOlpl5BRC5TGTPo3PFHwiI5VxBMLAKs5di9qbv5qwIn6BFwVUozDvw6zCCCmlubDHGmrObd25cTZskxrzwqVVZbLwI9s1mDQ3TuuWc8bcBrerR8ScO6D5GpV7kRQ8cwl39Dz4QnjJPVZ2qganW68xddXCDfbZM1BeAwVGTyqQOsnirn66AlJWMO95wOOvoHbja6LquVY0kEF5d/v9zM3HRGnCS3uYEdSFQLiP4fm/84jnHHB/VNkCJpOrJvEfrb5AtCcIOpZ/gsUSHjrY6ukMm6yXXpVo2cZf8WeMbsxahSUjUxdjcsA8RurYmkLlKh8VzcObwHg9cZvpa92FFYfLRtgLHgiLzfM6eDCIH1Ohse0r3ro2TlpSnbwiFWUKSwcgxqnIxQvu4/m9pAmob8Bjvrkx63YryUfxdC8RJKY8djzPb7GieSyWwfwMst2Ea0NlxEmt3YLBbK97slPy+zmCA3k/MF810mx0hvD+y1FMIuC3DQQuBG38lkw0AIPzFtq35isFrsPPjZY8JKveCcSmH81pZnVjiBrgUJi5+OQJ6Bb5eIgBjKtj5HatwKQe0OM8VXNw5f0W48bb/OLYWVBU7zCwGbt1LTuIkgRjUWUJuWCqQG47FeRs3TjY2kOembmpxyq19Mg78IGDfFaEKNzgkVANEgjFjNxoqPcWl+3UC5pt4GsQZjFd+ApFKmzWdT/vNtnCsykVi5vuB1mEmL5feXv8eavB+bK6Zff6hPz0WmD/0RyKboMazkZTi3lxzQ0KTlEdGnqRAOYWcmEe0FAjIee4LFxSBgNu4mvAuVRns98ysY8Cl3Gd8kghl44b0S2Y6EDNJYda2qFmZAW5GUXSpfCshOVqpKICRCT9itQMy2CFe0dNGnzu48EZu9KPLprDSCD63/gbIl9uaTXE1suHQU3zzUGmWTNtmB++BKF004yFbx1wEVQXSLRzSXgztrVfUM9aL6uMciXiVfGusJV15W4e6IzO4G01wSLjFYEIQW9tUA6jEuZj0msCowqWUvw=",
            "1; DM6PR07MB4907;\n\t6:tqu8ddKbfKvWz35eqUp5N/UW//fjtY2tldXWnsui1XLozoVyouqaVMXDSKxAk6BX5xMrzL9+AlTMND6pbOwpd+rTL9Ik8HAm5xmDxOX14hHa7T2xNFARClL3A+ZWtr0GoDDzqy9TZ9Ad2c1sCMojf8jUalkQhN1K9vQF4kqVqllU7c5ZIy/XZNwCYCtxziYorBLlINurXMs9EqYfAU/HRQQuRMOhFZDuhkWWN+nud4uHgPLOijAZvOaQ4Lo7KNiUQwo16gJGPSgBP+lxedDLlXKN2FTDH9FbeTX1EYFGG7F4MMMa0wd2qjDkAQ/OfWP3ZmmCzD7ga1jzH6yIR6NTLLtsIcsaq5wYZECKLfDRLt4yApv3Ck2AhqIQwZQ0DA5rLLQdMdIYvnu9BQTJ9CbkLUZgWZEWHOuha63+rTOGv7CyLJTHunt682w0+nFUnpNbw+PVdny65Ju8m0uzNy1ckg==;\n\t5:i8R17/KZtpd/iqG2SRaTQp+TjXfK5WHeRolUvLBNjy4SgB1I4ZcZC6XFIXALuJYvavvhmik/5R/+WF6SeMPPZTQ02aZ7hglK6FKL4uWuaQvRXP/hfSCq5JgfkYD0cTAnjU/syIkH2PMZwv4gH9FDTNEbSKfvA+K7J8ucCEsyY/0=;\n\t24:ZkPhqg+2hrZ0/FyNyRvXdPPN5knPsglbXiPZg8lXXJveEspejT6J0bQIdsXYY14fHfNNRvRmJcXXA5C/agOOzzk3vK231R5YyGWDfI382BU=",
            "1; DM6PR07MB4907;\n\t7:FddeFgdlFs+HVmngk0jBrY8c+Jxy587qXdhYbSragISuJDNbvdg/c5TdCTGKNXPjXGpL4aBxkaIhrfAlCd+IJ0h9i7BCZ07T+eHLNLVhJwzn/jyw/yPn6gwUfhZOJI4L6qyCnt23WRbVk8PKbVqotEuLPcQvk7rUblC1RS156okZNgCMi47SPpsEMVEaazNx3/xSXSGo0428yTXvCYcOTbwylP90W/EI3LUL2yWWZHu1YCodtCkywLRQtSzOcYyx"
        ],
        "X-MS-TrafficTypeDiagnostic": "DM6PR07MB4907:",
        "X-Microsoft-Antispam-PRVS": "<DM6PR07MB49074B247E822E3C7EE5920FF8700@DM6PR07MB4907.namprd07.prod.outlook.com>",
        "X-Exchange-Antispam-Report-Test": "UriScan:;",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3231254)(944501410)(52105095)(93006095)(10201501046)(3002001)(149027)(150027)(6041310)(20161123562045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123560045)(6072148)(201708071742011)(7699016);\n\tSRVR:DM6PR07MB4907; BCL:0; PCL:0; RULEID:; SRVR:DM6PR07MB4907; ",
        "X-Forefront-PRVS": "07083FF734",
        "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10009020)(346002)(376002)(396003)(39380400002)(366004)(39860400002)(199004)(189003)(16586007)(11346002)(36756003)(26005)(478600001)(25786009)(44832011)(2616005)(42882007)(16526019)(53936002)(54906003)(186003)(48376002)(476003)(956004)(6512007)(6666003)(305945005)(51416003)(316002)(52116002)(50226002)(68736007)(72206003)(486006)(6486002)(7736002)(76176011)(4326008)(110136005)(50466002)(5660300001)(3846002)(6116002)(105586002)(81166006)(8936002)(59450400001)(446003)(386003)(8676002)(8656006)(2906002)(106356001)(81156014)(47776003)(6506007)(97736004)(66066001)(55236004);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR07MB4907;\n\tH:ajoseph83.caveonetworks.com.caveonetworks.com; FPR:; SPF:None;\n\tLANG:en; PTR:InfoNoRecords; A:1; MX:1; ",
        "Received-SPF": "None (protection.outlook.com: cavium.com does not designate\n\tpermitted sender hosts)",
        "X-Microsoft-Antispam-Message-Info": "Ntb0DBR/O+PO0Pm9+Ad/oDgP+IQh6vSMYLNj6B3wUnCMXy9RZ/pBMwLWkziQ/uNn+t+To3vDHyCjepA7oBxmWoyc64Q1ekX4GoK97Le4pr2z+JRB+Wj/IcPhjTM7XZ3s9dMJK2qWFcO378Mh8L8RKJXzmdyfawsK7lx0QB8m/DWys5C4bkvXyd/gnABa4qgvvHZHHo/5l4obosDmGydnfCMgdDDmN2d7b73kph0Bv9C3dQStyGGKrFRTEFBqYHpMoRPZU+xs/d3o3gGuSFIuqlJhfiOc2TtkbTxYWcSPjRvwo3Owo1LIPUng5W3HBfBofM6Qj9CnzivKeY8WqtPtxw==",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-OriginatorOrg": "caviumnetworks.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "19 Jun 2018 06:28:09.0374\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "f7107e68-c56d-407a-ad9c-08d5d5add4ad",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "711e4ccf-2e9b-4bcf-a551-4094005b6194",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "DM6PR07MB4907",
        "Subject": "[dpdk-dev] [PATCH 2/2] app/crypto-perf: honour cryptodev's min\n\theadroom/tailroom",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Crypto dev would specify its headroom and tailroom requirement and the\napplication is expected to honour this while creating buffers.\n\nSigned-off-by: Anoob Joseph <anoob.joseph@caviumnetworks.com>\n---\n app/test-crypto-perf/cperf_options.h     |  2 ++\n app/test-crypto-perf/cperf_test_common.c | 33 +++++++++++++++++++++-----------\n app/test-crypto-perf/main.c              | 17 ++++++++++++++++\n 3 files changed, 41 insertions(+), 11 deletions(-)",
    "diff": "diff --git a/app/test-crypto-perf/cperf_options.h b/app/test-crypto-perf/cperf_options.h\nindex 350ad7e..f5bf03c 100644\n--- a/app/test-crypto-perf/cperf_options.h\n+++ b/app/test-crypto-perf/cperf_options.h\n@@ -76,6 +76,8 @@ struct cperf_options {\n \n \tuint32_t pool_sz;\n \tuint32_t total_ops;\n+\tuint32_t headroom_sz;\n+\tuint32_t tailroom_sz;\n \tuint32_t segment_sz;\n \tuint32_t test_buffer_size;\n \tuint32_t *imix_buffer_sizes;\ndiff --git a/app/test-crypto-perf/cperf_test_common.c b/app/test-crypto-perf/cperf_test_common.c\nindex 423782c..e803dc1 100644\n--- a/app/test-crypto-perf/cperf_test_common.c\n+++ b/app/test-crypto-perf/cperf_test_common.c\n@@ -11,12 +11,15 @@ struct obj_params {\n \tuint32_t src_buf_offset;\n \tuint32_t dst_buf_offset;\n \tuint16_t segment_sz;\n+\tuint16_t headroom_sz;\n+\tuint16_t data_len;\n \tuint16_t segments_nb;\n };\n \n static void\n fill_single_seg_mbuf(struct rte_mbuf *m, struct rte_mempool *mp,\n-\t\tvoid *obj, uint32_t mbuf_offset, uint16_t segment_sz)\n+\t\tvoid *obj, uint32_t mbuf_offset, uint16_t segment_sz,\n+\t\tuint16_t headroom, uint16_t data_len)\n {\n \tuint32_t mbuf_hdr_size = sizeof(struct rte_mbuf);\n \n@@ -26,10 +29,10 @@ fill_single_seg_mbuf(struct rte_mbuf *m, struct rte_mempool *mp,\n \tm->buf_iova = rte_mempool_virt2iova(obj) +\n \t\tmbuf_offset + mbuf_hdr_size;\n \tm->buf_len = segment_sz;\n-\tm->data_len = segment_sz;\n+\tm->data_len = data_len;\n \n-\t/* No headroom needed for the buffer */\n-\tm->data_off = 0;\n+\t/* Use headroom specified for the buffer */\n+\tm->data_off = headroom;\n \n \t/* init some constant fields */\n \tm->pool = mp;\n@@ -42,7 +45,7 @@ fill_single_seg_mbuf(struct rte_mbuf *m, struct rte_mempool *mp,\n static void\n fill_multi_seg_mbuf(struct rte_mbuf *m, struct rte_mempool *mp,\n \t\tvoid *obj, uint32_t mbuf_offset, uint16_t segment_sz,\n-\t\tuint16_t segments_nb)\n+\t\tuint16_t headroom, uint16_t data_len, uint16_t segments_nb)\n {\n \tuint16_t mbuf_hdr_size = sizeof(struct rte_mbuf);\n \tuint16_t remaining_segments = segments_nb;\n@@ -57,10 +60,10 @@ fill_multi_seg_mbuf(struct rte_mbuf *m, struct rte_mempool *mp,\n \t\tm->buf_iova = next_seg_phys_addr;\n \t\tnext_seg_phys_addr += mbuf_hdr_size + segment_sz;\n \t\tm->buf_len = segment_sz;\n-\t\tm->data_len = segment_sz;\n+\t\tm->data_len = data_len;\n \n-\t\t/* No headroom needed for the buffer */\n-\t\tm->data_off = 0;\n+\t\t/* Use headroom specified for the buffer */\n+\t\tm->data_off = headroom;\n \n \t\t/* init some constant fields */\n \t\tm->pool = mp;\n@@ -99,10 +102,12 @@ mempool_obj_init(struct rte_mempool *mp,\n \top->sym->m_src = m;\n \tif (params->segments_nb == 1)\n \t\tfill_single_seg_mbuf(m, mp, obj, params->src_buf_offset,\n-\t\t\t\tparams->segment_sz);\n+\t\t\t\tparams->segment_sz, params->headroom_sz,\n+\t\t\t\tparams->data_len);\n \telse\n \t\tfill_multi_seg_mbuf(m, mp, obj, params->src_buf_offset,\n-\t\t\t\tparams->segment_sz, params->segments_nb);\n+\t\t\t\tparams->segment_sz, params->headroom_sz,\n+\t\t\t\tparams->data_len, params->segments_nb);\n \n \n \t/* Set destination buffer */\n@@ -110,7 +115,8 @@ mempool_obj_init(struct rte_mempool *mp,\n \t\tm = (struct rte_mbuf *) ((uint8_t *) obj +\n \t\t\t\tparams->dst_buf_offset);\n \t\tfill_single_seg_mbuf(m, mp, obj, params->dst_buf_offset,\n-\t\t\t\tparams->segment_sz);\n+\t\t\t\tparams->segment_sz, params->headroom_sz,\n+\t\t\t\tparams->data_len);\n \t\top->sym->m_dst = m;\n \t} else\n \t\top->sym->m_dst = NULL;\n@@ -172,6 +178,11 @@ cperf_alloc_common_memory(const struct cperf_options *options,\n \n \tstruct obj_params params = {\n \t\t.segment_sz = options->segment_sz,\n+\t\t.headroom_sz = options->headroom_sz,\n+\t\t/* Data len = segment size - (headroom + tailroom) */\n+\t\t.data_len = options->segment_sz -\n+\t\t\t    options->headroom_sz -\n+\t\t\t    options->tailroom_sz,\n \t\t.segments_nb = segments_nb,\n \t\t.src_buf_offset = crypto_op_total_size_padded,\n \t\t.dst_buf_offset = 0\ndiff --git a/app/test-crypto-perf/main.c b/app/test-crypto-perf/main.c\nindex 4ae1439..9d9154e 100644\n--- a/app/test-crypto-perf/main.c\n+++ b/app/test-crypto-perf/main.c\n@@ -149,6 +149,23 @@ cperf_initialize_cryptodev(struct cperf_options *opts, uint8_t *enabled_cdevs,\n \t\t\t.nb_descriptors = opts->nb_descriptors\n \t\t};\n \n+\t\t/**\n+\t\t * Device info specifies the min headroom and tailroom\n+\t\t * requirement for the crypto PMD. This need to be honoured\n+\t\t * by the application, while creating mbuf.\n+\t\t */\n+\t\tif (opts->headroom_sz < cdev_info.min_headroom_req) {\n+\t\t\t/* Update headroom */\n+\t\t\topts->headroom_sz = cdev_info.min_headroom_req;\n+\t\t}\n+\t\tif (opts->tailroom_sz < cdev_info.min_tailroom_req) {\n+\t\t\t/* Update tailroom */\n+\t\t\topts->tailroom_sz = cdev_info.min_tailroom_req;\n+\t\t}\n+\n+\t\t/* Update segment size to include headroom & tailroom */\n+\t\topts->segment_sz += (opts->headroom_sz + opts->tailroom_sz);\n+\n \t\tif (session_pool_socket[socket_id] == NULL) {\n \t\t\tchar mp_name[RTE_MEMPOOL_NAMESIZE];\n \t\t\tstruct rte_mempool *sess_mp;\n",
    "prefixes": [
        "2/2"
    ]
}