get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 42714,
    "url": "http://patches.dpdk.org/api/patches/42714/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1531233760-4929-3-git-send-email-anoob.joseph@caviumnetworks.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": "<1531233760-4929-3-git-send-email-anoob.joseph@caviumnetworks.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1531233760-4929-3-git-send-email-anoob.joseph@caviumnetworks.com",
    "date": "2018-07-10T14:42:38",
    "name": "[v2,2/4] app/crypto-perf: honour cryptodev's min headroom/tailroom",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "1afff6bdd527b9c75c6a44ec88c96f172838d0d8",
    "submitter": {
        "id": 893,
        "url": "http://patches.dpdk.org/api/people/893/?format=api",
        "name": "Anoob Joseph",
        "email": "anoob.joseph@caviumnetworks.com"
    },
    "delegate": {
        "id": 22,
        "url": "http://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": "http://patches.dpdk.org/project/dpdk/patch/1531233760-4929-3-git-send-email-anoob.joseph@caviumnetworks.com/mbox/",
    "series": [
        {
            "id": 495,
            "url": "http://patches.dpdk.org/api/series/495/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=495",
            "date": "2018-07-10T14:42:36",
            "name": "add head/tailroom requirement for crypto PMDs",
            "version": 2,
            "mbox": "http://patches.dpdk.org/series/495/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/42714/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/42714/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 1ACA01B478;\n\tTue, 10 Jul 2018 16:43:29 +0200 (CEST)",
            "from NAM02-CY1-obe.outbound.protection.outlook.com\n\t(mail-cys01nam02on0061.outbound.protection.outlook.com\n\t[104.47.37.61]) by dpdk.org (Postfix) with ESMTP id C962D1B474\n\tfor <dev@dpdk.org>; Tue, 10 Jul 2018 16:43:26 +0200 (CEST)",
            "from ajoseph83.caveonetworks.com.caveonetworks.com (115.113.156.2)\n\tby DM6PR07MB4905.namprd07.prod.outlook.com (2603:10b6:5:a3::10)\n\twith Microsoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.930.20;\n\tTue, 10 Jul 2018 14:43:22 +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=j1ovcAwD557zSq09q554pgKWixGxgL1cWirU10QOr2Y=;\n\tb=m+vDyLLl9Nstt/M0wW6e3UYhxiBoidARohV308cqU31xZ4bJe1bRIM428QuZG/8PNHz6fT+WPQLPjfGDDGiyq2Es5ZzaCJR7rOVOG8z+JAH5fe/oldDWONjV4CxwjcNKNTIWjBGZrSfezXoS2OPc2IqK1bVVnaoGpZVd5wpvl7k=",
        "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, 10 Jul 2018 20:12:38 +0530",
        "Message-Id": "<1531233760-4929-3-git-send-email-anoob.joseph@caviumnetworks.com>",
        "X-Mailer": "git-send-email 2.7.4",
        "In-Reply-To": "<1531233760-4929-1-git-send-email-anoob.joseph@caviumnetworks.com>",
        "References": "<1530712550-18099-1-git-send-email-anoob.joseph@caviumnetworks.com>\n\t<1531233760-4929-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": "BM1PR01CA0100.INDPRD01.PROD.OUTLOOK.COM\n\t(2603:1096:b00::16)\n\tTo DM6PR07MB4905.namprd07.prod.outlook.com\n\t(2603:10b6:5:a3::10)",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "bcd1f266-3bbf-424c-9ed2-08d5e6737e11",
        "X-Microsoft-Antispam": "UriScan:; BCL:0; PCL:0;\n\tRULEID:(7020095)(4652040)(8989117)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(8990107)(5600053)(711020)(2017052603328)(7153060)(7193020);\n\tSRVR:DM6PR07MB4905; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; DM6PR07MB4905;\n\t3:SV/JPxKZS31hQ0cB0FmlSQQ8SOOkUVgHtxqkgCCsRuGAvFRjsxDzZuj8p39IztzubvJXIuxLGTT/VtcmnlHWoyeTQurkJ2SlB9XbGOmw/ez/X6/q3HL2BBetWjamG3McVjAk7fWIuqrhKrf3gN/Jfc6jm3uIHHNXBINGYafuEA4KBheUpFdzDzkjmfnOl/dDhbaitPs/NrnYskReTn/xMLPmUnkXcB9GEI6PL6kEsoFhuataD3bsRTIW6eyqb59T;\n\t25:MAcXgRNB1xyMly1QP45M13UyxpV1XvIi7MW/InVuZ+qQ0Dq1Karg2uaDL90jIpmjzal2T1PqI++na9+Vz21DI2YihDpepvmZClmTs5TRNnl+8oXopWAh5ZMjxK13tIQQDBXPfkxpChTkYqzY4gYwgSNqA7DulhFXV6Ky/o1t/vc2GFtolmUNiPJmk+zWDocHeIxo5Sktu8dilbc7TAEwtVQBZqHT390HpKZoaXi7CsRCoOVxfgO76a71B/1/vTTN1NPI4oS6ksoJzoZJdY3TrZo29BQiI3iX+IiEDjWicl6WNW1s81HZNrVWOAq9lHfjF59hrDP03hHcRNwGrSkPFg==;\n\t31:XSDAlSyFFEqS3Evo0zupgjwd0ncEwX5HiyqEWsURcMbW00zsyNKKJRO9DXQA65+a4sx18V8hFKFYDR1uxOrCRzforlXyAK8Z/T34kFNEDrzZqOANkp3di6W0jvtf7DdbQQiaMFGWmWNDMVjtfrqcHCEaKyL+sfcQcxJax4r3m+xt8AJcoWls+NOBzCpjskoHUJ50ef3UPHS7VCsuEfyruEPBADmIZfDSFpEB0UvJMx0=",
            "1; DM6PR07MB4905;\n\t20:D7nTtB6XlunKkgOJqaQzk42z6D9CFWqLTTPH4Qb5MOvv6TZ6UpCXNaUNlJXNmkmhm7RBHQewg747Kr/jvu93OwyiDvMB6f0J7fxrvTryS46rEXXkByqRP/neNXo6+V3kO7Gzy40jd2fKoVpooWOD2d5z/lXYv4njE4Z9ehK0BIGfCZATTOJfOqLFLa4TIrAABNPxcf/aq050j3T893RpHCbeHaHH2+mM5d42xE0FmybztHLwFwuUx7G6zZvCERGq0s4++A/ir2YsqTv3ZNw9Jq/lsyr/MfsvJ98beBIuLRZZzk6cJ4cmBZAh2I96B9GayiNL2PrfBsg4iXHUvLRuSSy6qYL0pJ5SkUXwlm7jLCrEDEbzOHcKi25oBXtQbA701AY7n59sc2X+FcpcIGCPVv40RE91hfponeGP5WG0vO/+thQzFnq4IBKXEoicr/kTsJhkqRLE0W6oEfitdViTJ3Ei8b5nQQuZcQN23jWPsiPdnavGPsoE2X1ehVdavDtaTHcnsrX7krWhwqa9479NUcCRB6wUJ6sylitUZuYiiX73USkrUiHRsjeWa59in4aofRUnYlSiW1PeFfk7Tt7rVZH4qmvzDeQe2o4MZ+uTSlo=;\n\t4:Hfowzj9+TKYdWAwayVj6wk7sHZRrWn1uc7Uw0s7e59zD/60pkmlCLCMm856D+xZUnpSewO+n/odZJhSTzo+ik2Gdmwa1ceiDoyP6/yxFFob224XqBV0hTQH6mMuzz4qlR89Hy5HgT3rIDFIA1mwlfkvMzkYK/1iZfnTjfSJvYklqX/IYvAaotioen/6dXWZYK1NuSVrQpZZ38PkzO80TXxTc4j67o2VMk2uV92uBYYTIm0Y9D6cZLKtzoN5DXKkY5oCc8aNuIktMoEDwnReROQ==",
            "=?us-ascii?Q?1; DM6PR07MB4905;\n\t23:223FezRBPzPnNW84g/S4abgFhQygVXDXZ70xN9Ryn?=\n\tbELpMIChSyOO37oxyQKwyg/UNuRDMBtG4zch46Jl18One2u6zV0faZpO+CD6tMumDKCsEDEldOcj8mBRzPEH1RR5VmVN4neUQjOxcSli6LYciAnRoJNPvMCXvb+wBvg0s38u8op+gmGHyE5d1scCMWScAm3eGWhcOBFZnBIYcfqvZ3og7acelZBk6ydiOL6B0xFuzhW1cwff5R4Ed0pcvCBjhGM24EbJBmVNXbrZS9cYxNV49J0l4/1kxhVMnm0HbT59B3cR+xoYq5dcWEqZBfSvd7gFZhlJ+KRBP6rq2yYIFKknct+9UKGiz4rHojnrHL37woawFobd76tcIRTOvrPPzHHqXWIyycEqO001rgsZelSstpcXB9PsRoMLSulSUjajB7zaE3FFDYa5KTAfjeGb8WYrm7puuqANoirEQ16PW9xdtm/kCU5wyVgtYj/gZ8V6ph7Ha1hPHij1nFhAr4F2c4SgnOk14GuhUAbF7i+9SCpq9ZloGS7/3sb77zyrxHER441h/MLnEGAEKsWLdVSnAPHQRv2DkUZkPZKthDSUNRTU+kja9kadWp/p0MmoOQzGMN7ZyZAPBCSOYU8ZYLyscHKoYCg56jMIKXFsQ/HMUWu7twhEJzkf9O08+1O7qjZc8fk5hdM/JUcU8ilAKy5Z3XOGN1CgqlO/bWlBsJGAYgBOC8cpZ8cw7jeQZsePxakjsJ6xfPFZ+o9cysI77i5cpWL1aC81YLiyHprH4cN/bNv852IyT3F9tZ27JX4TRKvWJPE1OgpOfIy554rMno1Q3KBBmrlbde0Ci/3x0zcmqMfkYlxgQxL7rHsz1KQpIt40KZKQ495WnW17LB963gzEsvHcQlHusArEcRUgNdLzor2ND82w3ZLydFGHDCJ2y3LJpaEXeb3oqQPcK7Gp+dsC0ijxQvJBh8KnU/qLmiWQWa5eBXf/gqU5dHmWhvX003mP9mt2ndo/qMVgR6pwitGxmw0TH91C4c0dDGYcKvYaO3t2HQyglyjALaSsUm1saeNEZHqHyMrBbUi5rmR9rnwYNx4uqKOe9l2R8N2zTFP0hnSG2uew11R9IXgAfN7tMHNXO7+FE/Wb3tKgsb0K/xzk3FUBp/MCcupF08LsK2MAdQle0GMJs8JE4GN3/hv167/eCexUg6zp/SudZQ+dZNDCMZ3BL86QJRTzD2gGzFSGOZet3paoy6+v0xAi/EGBmZs6IvMx/fnEiEg2wY4bstQ",
            "1; DM6PR07MB4905;\n\t6:EjFeTB7gz4KrNLqQNzHAnPcfgt4zJ41SazxVdsGag/2CCgE8EmkYzBH50aYnKp6FESE2BgiUJ7W6pXBnqWgcPIEAsEniG/H/kT30aS5NwcOxs8Vq5IU3eFpSC1e847ztiuZvA0EmUQ8FrZsMt2B47Ppq9MHIPeVjRHQTOnQzoi+y3g4ji1IQV5zlbqnJ6KHaG4cQiPNbLgkdYmB0iy12A/+oiJJLCaaXjvlRhAOfOC/TQ4EHrA3rnJD36SyEXZY2tAG6/yFhkugcu7vafiY+ZiEw/AY29LyNJaThoydPYh9I8QEIDuxh+jZCfDUBZgXB9KEyT5MPEi6YlLEikPUmdaIjeZaMYzjSrXWPH/oDrjPy3k0FDnF7Fl+lYBd/sm+eHNFMwQFCKKanyUxUUeMvTiub8nL6dnIToLB/tDuvLyhVYGLu9GxQ7oeQ3ubN5Ut/HCSmIkaFTw66KjdCITfo0A==;\n\t5:yOXCsPomIVZ6yHWWEXR3yZmU4ev/vBNVBM0+52FSApGCsbUU5En/Ciqu4skvJIOUkJD9dUa54Ec+bE+ziZ0KdZd7m13EhKVmjTsUYpslNbMowPRK+nEVZOKaai3dcGxJiUyJEzy8LCTFEOLEoGstU9AbcL2jhpQEWn+Ro5Ly4Rs=;\n\t24:MNSpwEj3xVk7z0CNxwKMPBRzQL/9K+Afep0BsFdxgTCmrROSbXR3nwcgfThGCiBGhXzdK9YsWZdTE5VlX77M5xiEjbWyZbkBoLXqiJ1mNk0=",
            "1; DM6PR07MB4905;\n\t7:ElSQAraiK1/eEvkAhzhqeyFjtPrFsu+tCNHB/V+lXd9/Do2nvI7XOOvSY74+3h6A6YfaRhQbjHp6nASqZlt+lU17JWQ2HxbnaEh7Lx4Cvb6pQp/sEmIcJMev0HTHurpEBRQM5dplIpUWA02frSfgEOcvEIPdJ4hQQXpXV4Q6DH0GXuMm7hMcM3m9SXfWVgTDz73CzlMlX3hjkx9IiUM9gGLT0Y/16ZV6rjjyR7P62qvVCyNB/zp4/2TmxieBMPui"
        ],
        "X-MS-TrafficTypeDiagnostic": "DM6PR07MB4905:",
        "X-Microsoft-Antispam-PRVS": "<DM6PR07MB49056F5D8618E07886BF1BA2F85B0@DM6PR07MB4905.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)(8121501046)(5005006)(10201501046)(93006095)(3002001)(3231311)(944501410)(52105095)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(20161123564045)(20161123558120)(6072148)(201708071742011)(7699016);\n\tSRVR:DM6PR07MB4905; BCL:0; PCL:0; RULEID:; SRVR:DM6PR07MB4905; ",
        "X-Forefront-PRVS": "0729050452",
        "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10009020)(136003)(376002)(346002)(39860400002)(396003)(366004)(199004)(189003)(14444005)(476003)(26005)(3846002)(16526019)(386003)(54906003)(55236004)(110136005)(2616005)(6506007)(186003)(16586007)(51416003)(6116002)(7736002)(478600001)(105586002)(25786009)(106356001)(305945005)(8676002)(81156014)(81166006)(76176011)(44832011)(486006)(956004)(42882007)(68736007)(11346002)(446003)(52116002)(2906002)(316002)(50226002)(8936002)(6666003)(97736004)(5660300001)(50466002)(66066001)(72206003)(36756003)(6512007)(48376002)(6486002)(4326008)(53936002)(47776003);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR07MB4905;\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": "t4oJIkbAFo+2caNlLRQRzrJOyMxewpWXx/orxBceJhMkqQZE8tr3C9VuH7hR7a2PUtm50e/bLqRgdPA5MSR2oCW5/nPr5/Bv/YWo8jWENN2EMN+oQyWXQa7qiBbt/+UHzcfP2AQelUdIm0Re4y4yfx2zGWg0sqTNXzkuvLjUac7kaPY9I6055jmgI0TWVm6t+wmlcuArIDoShY07PGfUXuNxsYWWSLs32KX+kBaBICHBjvA7tUme4xhv5b1OhNWs+h4mb3QESaHrNWa3zxJYN9qQmwyJ5bxMkeeqGNTU20bMRkqpJuhxjAaSHpzUBbvwuVPK2amIswFR/IB2be8QS96CxjSAGH3QL8fgHHRzAzE=",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-OriginatorOrg": "caviumnetworks.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "10 Jul 2018 14:43:22.7254\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "bcd1f266-3bbf-424c-9ed2-08d5e6737e11",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "711e4ccf-2e9b-4bcf-a551-4094005b6194",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "DM6PR07MB4905",
        "Subject": "[dpdk-dev] [PATCH v2 2/4] 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---\nv2:\n* No change\n\nv1:\n* Accomodated the name change of new fields\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..2c46525 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_mbuf_headroom_req) {\n+\t\t\t/* Update headroom */\n+\t\t\topts->headroom_sz = cdev_info.min_mbuf_headroom_req;\n+\t\t}\n+\t\tif (opts->tailroom_sz < cdev_info.min_mbuf_tailroom_req) {\n+\t\t\t/* Update tailroom */\n+\t\t\topts->tailroom_sz = cdev_info.min_mbuf_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": [
        "v2",
        "2/4"
    ]
}