From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 43A4EA00BE;
	Mon, 16 May 2022 09:25:15 +0200 (CEST)
Received: from [217.70.189.124] (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id E197940A7D;
	Mon, 16 May 2022 09:25:14 +0200 (CEST)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05on2056.outbound.protection.outlook.com [40.107.21.56])
 by mails.dpdk.org (Postfix) with ESMTP id 1FD8840A7B
 for <dev@dpdk.org>; Mon, 16 May 2022 09:25:13 +0200 (CEST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=b6x96rtnwDpWtSMI9EIfQe7hC/u0TV4GmEOV9/79L4mlxMPvVuUAGW65n5iqC0bK8p6G++7GSGtBR6dyl7+aHwWS00Fzk0Wq+MGH0scxY1bekpcqMkiES2gLsrf2B8SOJ0M8M0qH/t7Op4XguQfbEdtz9vQFrxhW9wZiEiNIAmsH0BUVAAO5HX1Z7Mn021/3fcU3NJTsPJK8SrzotST6aWHrKZ/X8+8wkZgZHpmsiS5pj3vorH8cNvo48aV5jN1YYAnr0t0DnKsHrZcHYQVeWYBZhm3fi6mrS04MpBZ9NjT8rZ+21PJ6SGf6TPJgWqE68PH+mKz1p62A9rclQZQmfA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; 
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Ocxbm+8+lFFF3ibk/1Ib2teHg1Nbtj0BDYTfdF84UPo=;
 b=F4zVhZZyYH7tbq9qi4zb5AeWOI9F2THPnU+K658pLwD5l9jXF98OLLi9+QBVkeuchE4HOwGoXDwU/iC6OWgVndMxd9281yoE0ARWU2+ZczstPvPGUWCqbG3TPxTCh7IFAcoJyKYhpqnFqV6VVHUV+FtYDIv4VqBLxuxwdD7FISG9ZhJJ+l5CvQWN6815GXEQgBnT/cFdPMXJzEv8HaowS6G5kfUjIx/nlyt9lTtAhdHBQiHhRVCxiIQqOlciXDEsIS2Ay7TfqdYfNxHoeP4IuJP9bPsYNMv/upUaKrBzEcCdhIpVNd0KYA4A3tHfdA8rhKOJl3Vsq/0n3i3TL08U+A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass
 header.d=nxp.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; 
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Ocxbm+8+lFFF3ibk/1Ib2teHg1Nbtj0BDYTfdF84UPo=;
 b=NWlFEUWQuZZOkQLYJMG6TLiU7a/gjSf6fEKFqSOcjyhHwGnHRJzD3jJ+3aZSW/AWIJUz4fInyLnLiD/LqMRGfd4hrc0P25zLxcvwvIkDso6y39Lm9cd5JkNPD7Fiwpcei8ZzTpbmd1+9cdHCPHRelHp9iVlbkbqYDUAt8ge8HBI=
Received: from AS8PR04MB8198.eurprd04.prod.outlook.com (2603:10a6:20b:3b0::14)
 by AM9PR04MB8921.eurprd04.prod.outlook.com (2603:10a6:20b:408::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.18; Mon, 16 May
 2022 07:25:11 +0000
Received: from AS8PR04MB8198.eurprd04.prod.outlook.com
 ([fe80::8cf1:93b:c340:3be2]) by AS8PR04MB8198.eurprd04.prod.outlook.com
 ([fe80::8cf1:93b:c340:3be2%9]) with mapi id 15.20.5250.018; Mon, 16 May 2022
 07:25:11 +0000
From: Gagandeep Singh <G.Singh@nxp.com>
To: Akhil Goyal <gakhil@marvell.com>, "dev@dpdk.org" <dev@dpdk.org>, "Power,
 Ciara" <ciara.power@intel.com>, "Zhang, Roy Fan" <roy.fan.zhang@intel.com>
Subject: RE: [EXT] [PATCH 7/8] test/crypto: add external buffer test case
Thread-Topic: [EXT] [PATCH 7/8] test/crypto: add external buffer test case
Thread-Index: AQHYWFsQCktYoVcyaEa8Ry4h3J5w2a0ctyAAgASBYCA=
Date: Mon, 16 May 2022 07:25:11 +0000
Message-ID: <AS8PR04MB819898955DD1B8B3E3950B5AE1CF9@AS8PR04MB8198.eurprd04.prod.outlook.com>
References: <20220425041423.2232034-1-g.singh@nxp.com>
 <20220425041423.2232034-7-g.singh@nxp.com>
 <CO6PR18MB448431E94D6AC8161FA030F6D8CA9@CO6PR18MB4484.namprd18.prod.outlook.com>
In-Reply-To: <CO6PR18MB448431E94D6AC8161FA030F6D8CA9@CO6PR18MB4484.namprd18.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nxp.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: b4c4a293-ca28-4da8-3ef5-08da370d36a7
x-ms-traffictypediagnostic: AM9PR04MB8921:EE_
x-microsoft-antispam-prvs: <AM9PR04MB8921C2F5113F496A8E9FB8A3E1CF9@AM9PR04MB8921.eurprd04.prod.outlook.com>
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: umPuVDCG8Y4dX21xUws4/VYMjyUjLhdXmPYEOJyfwc/7DUEBblrhMyIOsa8/71xwnAgM/P/FeTcFC7p/njAlRew1ww3im/AGq9BZ19XiUzI/uvbFkL72d8EeW3Raa6FWfQIdAWUUoGqcXpsn0Iemk6d6RcwIQsdQXNcQqRbpDN9AhPN2jSmCpCW9JZSZBTTZCVqN5NO/zcP7rhzbDSOoyjpE7rJMk4hGVoBiRb3oPFLrt5eETWLaGtTDsKnq/jPmY93gxIlMtumkR0s+Kz2p+q9POwph5yx+znwzyRXJeQdff+c52/yCD6S7iFU9lAzBegmz+eQkaCz6SYsaXAsttpHKFcO/YUCZjeeMz/XNtJz0Wjw4weKMC7kCcuftF+JEYSrzmilpHZXmnNqZnJe+EQuMDZV0TjUBAQm4AgrlFHYY5RW8eQHRw0sMHYeHXD6FVNrOsB/oX6LMMRfayJrbG8oK6KCjrlwLLRtL9m2Xb/STnlmpraxTDu2LjJMFZ8hqMldSqe9PcYPerRq2CJ20rS8hTm2q1JtoP6KfxdeAgm1k8az40g2YTQvoEFAQdz8POrSmayvteSRAMwg6SqrT64Pu+HJA/Zuh2MHn5lGJWv9tMQMm5RDRzhXoag+xhszvxQznw825qTcTLnAVxwAK34gkla9FFGz70fBflqZEf+KDvMi1RRcJvii4Rb6amyItGJ+/av1YTTslCQEyWALysA==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:AS8PR04MB8198.eurprd04.prod.outlook.com; PTR:; CAT:NONE;
 SFS:(13230001)(4636009)(366004)(110136005)(186003)(8676002)(71200400001)(83380400001)(5660300002)(6506007)(64756008)(66946007)(66556008)(66476007)(66446008)(76116006)(55016003)(316002)(53546011)(122000001)(86362001)(55236004)(9686003)(52536014)(8936002)(7696005)(2906002)(38100700002)(26005)(38070700005)(508600001)(33656002);
 DIR:OUT; SFP:1101; 
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?y7BEu/PJQKJ4x6edU2+xmlxzM3ga7j2/BQrjYdULIQph6qFaqWSUo04YqS7z?=
 =?us-ascii?Q?hOkD/oUJbhRpbw8DtZhEmDcA1aaY+0Hsm5H1bDYur6UIyDae6mZqVYZV86Px?=
 =?us-ascii?Q?3kcjz0hgidrlQftBu+tNzh2DMZxtlU2W5fTwyCwr9EMFzmgMmdV3EkTRaAT1?=
 =?us-ascii?Q?TRXyMb4/Vyz4WLzETWNRA5/rDGKg0DudqSLUXjzQLQ4ABdVvHz5CgzoNoUbm?=
 =?us-ascii?Q?I0uM8/CJyHL6WUJ2CW95Rw6sYJx48AGJy01TpthzgwMYNz3ZdTBUXDl/zrda?=
 =?us-ascii?Q?IDJLhLRmqqwgdyQIfO/dBKlpKkd0hs7E1iq+sV7VTkfTy0McvqKyL31vr5ZW?=
 =?us-ascii?Q?tsAPdayeExaA+Tq0wF0n+sY9r7nq0iNJeguI9DXSqdo0Ex8wAiPz30kewawq?=
 =?us-ascii?Q?iPuSuaz5qoBQjfdhqINMvoGXkry2WOTT2JSOHglH3mUz6FZ72bK/ZbAk03Ip?=
 =?us-ascii?Q?suIb6nfR55RlyNPofklt7CiE95M+rmKvxAKKoMmFPI3m+p82RnzJx+afMU/1?=
 =?us-ascii?Q?qQIMhHUTkXDMnYOalT6jcf7fpkFR0J65LZHvZfJedRFGxjIm2qt1KLuPbvHt?=
 =?us-ascii?Q?VpnYytbvyqt2klfvyVAxTKuMYDpmi0ekbey+FVztxRmxNpe48vLEQnQzO0+k?=
 =?us-ascii?Q?s5dt6VsGWxyVsY/RcEAfchG76N08g+ArFA/5YjCjBaXyZLtBFdN/eNR9jgp3?=
 =?us-ascii?Q?3VP7KN8DsFZHkEBXta/Sd+MDA39N3VO+KZouRXgv5+OIHdlPxj05A2RjylDs?=
 =?us-ascii?Q?Pq988SVJjKC4CKsjACeHa5MDHJxZattlUSkB7bgkkcqkmJzdxmLxHz+55K3D?=
 =?us-ascii?Q?PKyB8YYBEEIiW/v8JggRY6+AZHOtjx0DFooDhg5udHa6LsmLmGsZwv+KXPqU?=
 =?us-ascii?Q?D4qblwCDeUJ1rqSj7kdiFxj0/6BUnnb96gud/1bjRLFmJgI10wt9g0ZMHrCX?=
 =?us-ascii?Q?mcnV6yvmL3q2C95qxbabnUVumGyosD3e2rrjldwQKulUaNPg47FsHCmg6peN?=
 =?us-ascii?Q?Pg0uFmduh7BOWQo2PwmVCNL9sREWtZqzbYMTk86JLcdoOQSf6IGwGy7jXL/Z?=
 =?us-ascii?Q?fRtWTca6Ldmc2SolOdBNHw0WB03pR2GJV47Vw0wbebsGwJftkluqYMSd9Qbu?=
 =?us-ascii?Q?xq4zLrHzZwf8RiRye6nFsfKBcVUUlagVA9+FS4F/H6YZvrOHcgVQbtvFtNFp?=
 =?us-ascii?Q?d6b1txN7jAzLSgppantpEOlt9xbVbo1Yk/FRu4/Uz4DeoEsi4M7e+NyzAzYQ?=
 =?us-ascii?Q?u2eActvAXYrRof+SMZzIArCGo9hXASX11BgO3tNhupEzU8DV2441LUpolx2d?=
 =?us-ascii?Q?G34I6Q1ACMu/+xSMOiC298DQ2gLyqd4sg0AjueqJOncQw+w7kRDT+mAlw+Ay?=
 =?us-ascii?Q?mqnGr33+0KVW8/d4UUNbDlFlGuLQ62QmJHXYtHN/SE+jD9RMhFa7c8D8no40?=
 =?us-ascii?Q?NikpyZ5tA+fKGwFBJpHVNvCe69tCLdrgcSmkD5o1WVafjpmWhowYHKR9eCnV?=
 =?us-ascii?Q?DfU+nDcFrhN5Nio/2IJm1r5vv3mF+V/7IDscpR2Mzd8AGxk6HNY2Vo+dHPih?=
 =?us-ascii?Q?ApLadU0ImbiYZi7mSCk6Rfu/jRPG2OMyISgFO/jDV3hfLDfg+FfI/kDNplCz?=
 =?us-ascii?Q?0qR8ZcwezeTCf7IOlmzykbAeK45zRY2BmNhH2ia5J3e/M/xZFrWpynJ+IlPO?=
 =?us-ascii?Q?4ZvAMK1hb0cjNGKDJducYpjwYQqhcNtFvc2shXJMhpYu+2n4?=
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: nxp.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AS8PR04MB8198.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b4c4a293-ca28-4da8-3ef5-08da370d36a7
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 May 2022 07:25:11.7223 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: zEE9IeDi6r1z64nGFSajiA71/FTI9UW1YzfVkz6u4J8wciV4PVhYcm8ibYyIOGVS
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8921
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <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>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org

Hi,

> -----Original Message-----
> From: Akhil Goyal <gakhil@marvell.com>
> Sent: Friday, May 13, 2022 3:57 PM
> To: Gagandeep Singh <G.Singh@nxp.com>; dev@dpdk.org; Power, Ciara
> <ciara.power@intel.com>; Zhang, Roy Fan <roy.fan.zhang@intel.com>
> Subject: RE: [EXT] [PATCH 7/8] test/crypto: add external buffer test case
>=20
> > Add a test case to verify crypto functionality with external buffer.
> >
> > Signed-off-by: Gagandeep Singh <g.singh@nxp.com>
> > ---
> >  app/test/test_cryptodev.c | 163
> > ++++++++++++++++++++++++++++++++++++++
> >  1 file changed, 163 insertions(+)
> >
> > diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c
> > index 0b53ec0078..b4ffb4fd94 100644
> > --- a/app/test/test_cryptodev.c
> > +++ b/app/test/test_cryptodev.c
> > @@ -2270,6 +2270,167 @@ test_AES_CBC_HMAC_SHA1_encrypt_digest(void)
> >  	return TEST_SUCCESS;
> >  }
> >
> > +static inline void
> > +ext_buf_free_callback_fn(void *addr,
> > +			 void *ext_buf_ptr __rte_unused)
> > +{
> > +	rte_free(addr);
> > +}
> > +
> > +static int
> > +test_AES_CBC_HMAC_SHA1_encrypt_digest_ext_buffer(void)
> > +{
> > +	struct crypto_testsuite_params *ts_params =3D &testsuite_params;
> > +	struct crypto_unittest_params *ut_params =3D &unittest_params;
> > +	int status;
> > +	void *buf;
> > +	rte_iova_t iova;
> > +	uint16_t buf_len =3D QUOTE_1024_BYTES;
> > +	struct rte_mbuf_ext_shared_info *shinfo =3D NULL;
> > +	struct rte_mbuf *m;
> > +
> > +
> Extra line
>=20
> > +	/* Verify the capabilities */
> > +	struct rte_cryptodev_sym_capability_idx cap_idx;
> > +	cap_idx.type =3D RTE_CRYPTO_SYM_XFORM_AUTH;
> > +	cap_idx.algo.auth =3D RTE_CRYPTO_AUTH_SHA1_HMAC;
> > +	if (rte_cryptodev_sym_capability_get(ts_params->valid_devs[0],
> > +			&cap_idx) =3D=3D NULL)
> > +		return TEST_SKIPPED;
> > +	cap_idx.type =3D RTE_CRYPTO_SYM_XFORM_CIPHER;
> > +	cap_idx.algo.cipher =3D RTE_CRYPTO_CIPHER_AES_CBC;
> > +	if (rte_cryptodev_sym_capability_get(ts_params->valid_devs[0],
> > +			&cap_idx) =3D=3D NULL)
> > +		return TEST_SKIPPED;
> Repeated code.
>=20
> > +
> > +	buf =3D rte_malloc(NULL, buf_len, RTE_CACHE_LINE_SIZE);
> > +	if (buf =3D=3D NULL)
> > +		return TEST_SKIPPED;
>=20
> Why skipped? It is an error if malloc is failed.
>=20
> > +
> > +	rte_memcpy(buf, catch_22_quote, QUOTE_512_BYTES);
> > +	shinfo =3D rte_pktmbuf_ext_shinfo_init_helper(buf, &buf_len,
> > +				ext_buf_free_callback_fn, NULL);
> > +	if (unlikely(shinfo =3D=3D NULL)) {
> > +		rte_free(buf);
> > +		return -1;
> > +	}
> > +	iova =3D rte_malloc_virt2iova(buf);
> > +	m =3D rte_pktmbuf_alloc(ts_params->mbuf_pool);
> > +	if (m =3D=3D NULL)
> > +		return TEST_SKIPPED;
> Again, it should be TEST_FAILED
>=20
> > +	rte_pktmbuf_attach_extbuf(m, buf, iova, buf_len, shinfo);
> > +	rte_pktmbuf_reset_headroom(m);
> > +	m->pkt_len =3D QUOTE_512_BYTES;
> > +	m->data_len  =3D QUOTE_512_BYTES;
> Please use proper APIs to append data and increase lengths.
>=20
> > +	m->data_off  =3D 0;
> Why is data off rewritten as 0?
> It is modified by rte_pktmbuf_reset_headroom().
>=20
> > +
> > +	ut_params->ibuf =3D m;
> > +
> > +	ut_params->digest =3D (uint8_t *)rte_pktmbuf_append(ut_params->ibuf,
> > +			DIGEST_BYTE_LENGTH_SHA1);
> > +	TEST_ASSERT_NOT_NULL(ut_params->digest, "no room to append
> > digest");
> > +
> > +	/* Setup Cipher Parameters */
> > +	ut_params->cipher_xform.type =3D RTE_CRYPTO_SYM_XFORM_CIPHER;
> > +	ut_params->cipher_xform.next =3D &ut_params->auth_xform;
> > +
> > +	ut_params->cipher_xform.cipher.algo =3D
> > RTE_CRYPTO_CIPHER_AES_CBC;
> > +	ut_params->cipher_xform.cipher.op =3D
> > RTE_CRYPTO_CIPHER_OP_ENCRYPT;
> > +	ut_params->cipher_xform.cipher.key.data =3D aes_cbc_key;
> > +	ut_params->cipher_xform.cipher.key.length =3D
> > CIPHER_KEY_LENGTH_AES_CBC;
> > +	ut_params->cipher_xform.cipher.iv.offset =3D IV_OFFSET;
> > +	ut_params->cipher_xform.cipher.iv.length =3D
> > CIPHER_IV_LENGTH_AES_CBC;
> > +
> > +	/* Setup HMAC Parameters */
> > +	ut_params->auth_xform.type =3D RTE_CRYPTO_SYM_XFORM_AUTH;
> > +
> > +	ut_params->auth_xform.next =3D NULL;
> > +
> > +	ut_params->auth_xform.auth.op =3D RTE_CRYPTO_AUTH_OP_GENERATE;
> > +	ut_params->auth_xform.auth.algo =3D RTE_CRYPTO_AUTH_SHA1_HMAC;
> > +	ut_params->auth_xform.auth.key.length =3D HMAC_KEY_LENGTH_SHA1;
> > +	ut_params->auth_xform.auth.key.data =3D hmac_sha1_key;
> > +	ut_params->auth_xform.auth.digest_length =3D
> > DIGEST_BYTE_LENGTH_SHA1;
> > +
> > +	ut_params->sess =3D rte_cryptodev_sym_session_create(
> > +			ts_params->session_mpool);
> > +	TEST_ASSERT_NOT_NULL(ut_params->sess, "Session creation failed");
> > +
> > +	/* Create crypto session*/
> > +	status =3D rte_cryptodev_sym_session_init(ts_params->valid_devs[0],
> > +			ut_params->sess, &ut_params->cipher_xform,
> > +			ts_params->session_priv_mpool);
> > +
> > +	if (status =3D=3D -ENOTSUP)
> > +		return TEST_SKIPPED;
> > +
> > +	TEST_ASSERT_EQUAL(status, 0, "Session init failed");
> > +
> > +	/* Generate crypto op data structure */
> > +	ut_params->op =3D rte_crypto_op_alloc(ts_params->op_mpool,
> > +			RTE_CRYPTO_OP_TYPE_SYMMETRIC);
> > +	TEST_ASSERT_NOT_NULL(ut_params->op,
> > +			"Failed to allocate symmetric crypto operation struct");
> > +
> > +	rte_crypto_op_attach_sym_session(ut_params->op, ut_params->sess);
> > +
> > +	struct rte_crypto_sym_op *sym_op =3D ut_params->op->sym;
> > +
> > +	/* set crypto operation source mbuf */
> > +	sym_op->m_src =3D ut_params->ibuf;
> > +
> > +	/* Set crypto operation authentication parameters */
> > +	sym_op->auth.digest.data =3D ut_params->digest;
> > +	sym_op->auth.digest.phys_addr =3D rte_pktmbuf_iova_offset(
> > +			ut_params->ibuf, QUOTE_512_BYTES);
> > +
> > +	sym_op->auth.data.offset =3D 0;
> > +	sym_op->auth.data.length =3D QUOTE_512_BYTES;
> > +
> > +	/* Copy IV at the end of the crypto operation */
> > +	rte_memcpy(rte_crypto_op_ctod_offset(ut_params->op, uint8_t *,
> > IV_OFFSET),
> > +			aes_cbc_iv, CIPHER_IV_LENGTH_AES_CBC);
> > +
> > +	/* Set crypto operation cipher parameters */
> > +	sym_op->cipher.data.offset =3D 0;
> > +	sym_op->cipher.data.length =3D QUOTE_512_BYTES;
> > +
> > +	/* Process crypto operation */
> > +	if (gbl_action_type =3D=3D RTE_SECURITY_ACTION_TYPE_CPU_CRYPTO)
> > +		process_cpu_crypt_auth_op(ts_params->valid_devs[0],
> > +			ut_params->op);
> > +	else
> > +		TEST_ASSERT_NOT_NULL(
> > +			process_crypto_request(ts_params->valid_devs[0],
> > +				ut_params->op),
> > +				"failed to process sym crypto op");
> > +
> > +	TEST_ASSERT_EQUAL(ut_params->op->status,
> > RTE_CRYPTO_OP_STATUS_SUCCESS,
> > +			"crypto op processing failed");
> > +
> > +	/* Validate obuf */
> > +	uint8_t *ciphertext =3D rte_pktmbuf_mtod(ut_params->op->sym->m_src,
> > +			uint8_t *);
> > +
> > +	TEST_ASSERT_BUFFERS_ARE_EQUAL(ciphertext,
> > +			catch_22_quote_2_512_bytes_AES_CBC_ciphertext,
> > +			QUOTE_512_BYTES,
> > +			"ciphertext data not as expected");
> > +
> > +	uint8_t *digest =3D ciphertext + QUOTE_512_BYTES;
> > +
> > +	TEST_ASSERT_BUFFERS_ARE_EQUAL(digest,
> > +
> > 	catch_22_quote_2_512_bytes_AES_CBC_HMAC_SHA1_digest,
> > +			gbl_driver_id =3D=3D rte_cryptodev_driver_id_get(
> > +
> > 	RTE_STR(CRYPTODEV_NAME_AESNI_MB_PMD)) ?
> > +
> > 	TRUNCATED_DIGEST_BYTE_LENGTH_SHA1 :
> > +					DIGEST_BYTE_LENGTH_SHA1,
> > +			"Generated digest data not as expected");
> > +
> Above check for AESNI_MB not required.
>=20
> > +	return TEST_SUCCESS;
> > +}
> > +
> > +
> >  /* ***** AES-CBC / HMAC-SHA512 Hash Tests ***** */
> >
> >  #define HMAC_KEY_LENGTH_SHA512  (DIGEST_BYTE_LENGTH_SHA512) @@
> > -15458,6 +15619,8 @@ static struct unit_test_suite
> > cryptodev_gen_testsuite  =3D {
> >  		TEST_CASE_ST(ut_setup, ut_teardown, test_stats),
> >  		TEST_CASE_ST(ut_setup, ut_teardown,
> test_enq_callback_setup),
> >  		TEST_CASE_ST(ut_setup, ut_teardown,
> test_deq_callback_setup),
> > +		TEST_CASE_ST(ut_setup, ut_teardown,
> > +
> > 	test_AES_CBC_HMAC_SHA1_encrypt_digest_ext_buffer),
> >  		TEST_CASES_END() /**< NULL terminate unit test array */
> >  	}
> >  };

If you agree, I would like to integrate external buffer testing in blockcip=
her
test cases so that we can test all other cases as well and there will be no=
 need to add
additional test case. We can simply integrate it by adding additional =20
"feature_mask" something like BLOCKCIPHER_TEST_FEATURE_EXTERNAL_BUFFER
to the test cases.
I will try to send it as separate patch.


> > --
> > 2.25.1