From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 94DC7A0597; Wed, 8 Apr 2020 12:45:03 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id DCAFD1C139; Wed, 8 Apr 2020 12:45:02 +0200 (CEST) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id 99B0F1C139 for ; Wed, 8 Apr 2020 12:45:01 +0200 (CEST) IronPort-SDR: 3P5NRSftUfYSlXC8P/NtItj/IpPofNjWex2G1Fb+bkfVmmqixzERaQgw29511B70o0koIgHZPJ +udJwKnRSaeQ== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Apr 2020 03:44:59 -0700 IronPort-SDR: lzML4d2qbOJK+0u+YnGsSseUAlFGMn/Y+7VwV4wM0DxQxGv6W/T4b1zIph1E7EGTBzlgHGxA3F pFAzv6fsl6yQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,357,1580803200"; d="scan'208";a="275403251" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by fmsmga004.fm.intel.com with ESMTP; 08 Apr 2020 03:44:59 -0700 Received: from FMSEDG002.ED.cps.intel.com (10.1.192.134) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 8 Apr 2020 03:44:59 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.173) by edgegateway.intel.com (192.55.55.69) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 8 Apr 2020 03:44:59 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=G+Kwlxo5mTe6cPR6d83cZ9RnDph6dLSNuMMQZNgpnuD1z1TFaPGVgcur71CavZdtg0BBDgGE0NPpEwPJxo8kqs40wqsDZ8KbMRO518DoSVN7gJaHruPu8I5W902Y2HoPi9nljtwLhJZcMLx6UrIZmDacL0NPSGexF6SvbqXpFPRUlBbjW/mnwrZx5oqvlwfb+2oR/NOHVIBykdTXd9rpfxTEQmwiRioRU6fgfpSJhUkMnM22x4uQ0k2QS7lQYfbDbYZINzFkvjDwE76bNQ02AsvXVedkCruOQjFRcEkO70GEHqyQ6SVo76aS8+Yi6n6nJTcofTF0psJIS8Rjbx+tgw== 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-SenderADCheck; bh=9KBE6/80J5BpvLlgGJz6IMl9Gm0xDoQXP4lGZCToztI=; b=LqflxNE3aOgGd/MdwbhD27Fjmk5wS3yzSDQqOUXYJCIjVF2qfKWI+GdcGwd2wgMzx9OJ4Xr4VGlZTJwPqULFzZwgKxNl/v4kzck6RwapErwYYaqssox58ru/FKy4nl+rpQPAlpDu4vBCYoHbAPixtFx+lz6CRi0oH5geCwGEuYvlqyihMyJGXMol/wR6YW/bu9uCb/RXbM4LIa9ye/sKw2oZxhEtNP/7ZvmJ28E+aGOOVqzs3HxPB8qlG7Nic/dIuf7RI8mhF7LU6Fq36l88S0xNItiHOgyqOOOzVM618VmP7gQsp4Nqjj7Av5+3ZddZ9k3Yd9Szs+tkMTDH7cvXRg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9KBE6/80J5BpvLlgGJz6IMl9Gm0xDoQXP4lGZCToztI=; b=NWjxZ7mGW7SdonI17buhIWtXiCaUH61BWkpjCeIlFYpfvgpkZzOC+90h7uWJDhvlb/yLn+A+KCVKFfXgDiNA5QU8dMCl4oWd/965+BMAUKvRIH+9p7lDR/U3KDXnwG/JTMv5Y1NylSAoy7kBhtXx09ueSJaui2LikVYLG9V4Ioc= Received: from SN6PR11MB3101.namprd11.prod.outlook.com (2603:10b6:805:d8::23) by SN6PR11MB2975.namprd11.prod.outlook.com (2603:10b6:805:d0::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2878.20; Wed, 8 Apr 2020 10:44:56 +0000 Received: from SN6PR11MB3101.namprd11.prod.outlook.com ([fe80::f9a3:b1f8:9a17:911a]) by SN6PR11MB3101.namprd11.prod.outlook.com ([fe80::f9a3:b1f8:9a17:911a%7]) with mapi id 15.20.2878.018; Wed, 8 Apr 2020 10:44:56 +0000 From: "De Lara Guarch, Pablo" To: "De Lara Guarch, Pablo" , "Coyle, David" , "dev@dpdk.org" CC: "Doherty, Declan" , "Trahe, Fiona" , "Ryan, Brendan" , "shreyansh.jain@nxp.com" , "hemant.agrawal@nxp.com" , "O'loingsigh, Mairtin" Thread-Topic: [PATCH v2 2/4] raw/aesni_mb: add aesni_mb raw device Thread-Index: AQHWCdfYn3OdRvhLuUW9PGtZ1mM2LahsSKiggALIlEA= Date: Wed, 8 Apr 2020 10:44:55 +0000 Message-ID: References: <20200403163656.60545-1-david.coyle@intel.com> <20200403163656.60545-3-david.coyle@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.2.0.6 authentication-results: spf=none (sender IP is ) smtp.mailfrom=pablo.de.lara.guarch@intel.com; x-originating-ip: [192.198.151.189] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 06f9a506-0a6f-4045-c0e5-08d7dba9e09d x-ms-traffictypediagnostic: SN6PR11MB2975: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7691; x-forefront-prvs: 0367A50BB1 x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN6PR11MB3101.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(10019020)(396003)(136003)(39860400002)(366004)(376002)(346002)(5660300002)(6506007)(53546011)(66946007)(71200400001)(76116006)(81156014)(66556008)(66476007)(86362001)(66446008)(52536014)(64756008)(26005)(7696005)(81166007)(8936002)(54906003)(55016002)(33656002)(30864003)(478600001)(9686003)(110136005)(4326008)(2906002)(186003)(8676002)(107886003)(316002); DIR:OUT; SFP:1102; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Mz+uShY6Cv4Y/j09yYIpPCnhPgCu07lLBRPBFIG3prA8ThDp36I2/Wyk2/p9P5JwYmLNgqkqBPBKjgmZeWKmP3X/Ek6GeJ6pFtFV5XN4xmlF7Pl6fpfJWl+m8ohLa9trH9jTnGspMG2KKNtP8/UwvnT9STRwEZ+Xs9PWcZVDfn9jnXc6LG0RjCURPnMArUo5hxmzCWThZXg8QC/K6AyF2WNqx73hNhqkLBtGKIbyfvLOKMcIySCgM+q+CnEyKvH31AZAm2wnTxafQ2W/QkdCOK/zujGP4aO4AKYMjtM820uv8rUtI+MCe6SvtV1oMIR7FsRIk9NvzIzXFCx9/2pjtX9ST3mFIyyryRpUUgKfqt/P2jh+RKg0RXToUOGtBANi9Qsw6eF0zADPCvbReHCKPnKPTt9d7LMsVGb5Hd1EcIzcrAw4Pr4agC0TBvXFWAQk x-ms-exchange-antispam-messagedata: DA/+jTqk1wsVQAmYHeiXGrLFxZSDxY6ue8vRFckjV9Jzpn+Symjg48Apa8XyHKn2YxfE90Oc/mbnN7/EkYA4fjnTSstrGWHa0JSQCELL7PxxaVSkuvQ04pP+2DyXHC5eoDxaQAoKJC9BBmRvvG2BGw== Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 06f9a506-0a6f-4045-c0e5-08d7dba9e09d X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Apr 2020 10:44:55.8686 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 3PB936KVqGxtf8PQaUpYZSm2k/0PRmehcQOVSp/xGfb+BevTWr0GevWzL+H1Eu60+iWT1nYEE2OEOwk6hNmg7/VxK05fps634XcD7asTWoE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB2975 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v2 2/4] raw/aesni_mb: add aesni_mb raw device X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Hi David, > -----Original Message----- > From: dev On Behalf Of De Lara Guarch, Pablo > Sent: Tuesday, April 7, 2020 7:51 PM > To: Coyle, David ; dev@dpdk.org > Cc: Doherty, Declan ; Trahe, Fiona > ; Ryan, Brendan ; > shreyansh.jain@nxp.com; hemant.agrawal@nxp.com; O'loingsigh, Mairtin > > Subject: Re: [dpdk-dev] [PATCH v2 2/4] raw/aesni_mb: add aesni_mb raw dev= ice >=20 > Hi David, >=20 > > -----Original Message----- > > From: Coyle, David > > Sent: Friday, April 3, 2020 5:37 PM > > To: dev@dpdk.org > > Cc: Doherty, Declan ; Trahe, Fiona > > ; De Lara Guarch, Pablo > > ; Ryan, Brendan > > ; shreyansh.jain@nxp.com; > > hemant.agrawal@nxp.com; Coyle, David ; > > O'loingsigh, Mairtin > > Subject: [PATCH v2 2/4] raw/aesni_mb: add aesni_mb raw device > > > > Adding an AESNI-MB raw device, thereby exposing AESNI-MB to the rawdev > > API. The AESNI-MB raw device will use the multi-function interface to > > allow combined operations be sent to the AESNI-MB software library. > > > > Signed-off-by: David Coyle > > Signed-off-by: Mairtin o Loingsigh > > --- > > config/common_base | 6 + > > drivers/raw/Makefile | 2 + > > drivers/raw/aesni_mb/Makefile | 47 + > > drivers/raw/aesni_mb/aesni_mb_rawdev.c | 1536 +++++++++++++++++ > > drivers/raw/aesni_mb/aesni_mb_rawdev.h | 112 ++ > > drivers/raw/aesni_mb/aesni_mb_rawdev_test.c | 1102 ++++++++++++ > > .../aesni_mb/aesni_mb_rawdev_test_vectors.h | 1183 +++++++++++++ > > drivers/raw/aesni_mb/meson.build | 26 + > > .../aesni_mb/rte_rawdev_aesni_mb_version.map | 3 + > > drivers/raw/meson.build | 3 +- > > mk/rte.app.mk | 2 + >=20 > You missed adding the PMD to the MAINTAINERS file. >=20 > > 11 files changed, 4021 insertions(+), 1 deletion(-) create mode > > 100644 drivers/raw/aesni_mb/Makefile create mode 100644 > > drivers/raw/aesni_mb/aesni_mb_rawdev.c > > create mode 100644 drivers/raw/aesni_mb/aesni_mb_rawdev.h > > create mode 100644 drivers/raw/aesni_mb/aesni_mb_rawdev_test.c > > create mode 100644 > > drivers/raw/aesni_mb/aesni_mb_rawdev_test_vectors.h > > create mode 100644 drivers/raw/aesni_mb/meson.build create mode > > 100644 drivers/raw/aesni_mb/rte_rawdev_aesni_mb_version.map > > > > diff --git a/config/common_base b/config/common_base index > > 4f004968b..7ac6a3428 100644 > > --- a/config/common_base > > +++ b/config/common_base > > @@ -818,6 +818,12 @@ > > CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EP_RAWDEV=3Dy > > # > > CONFIG_RTE_LIBRTE_PMD_NTB_RAWDEV=3Dy > > > > +# > > +# Compile PMD for AESNI raw device > > +# > > +CONFIG_RTE_LIBRTE_PMD_AESNI_MB_RAWDEV=3Dn > > +CONFIG_RTE_LIBRTE_PMD_AESNI_MB_RAWDEV_DEBUG=3Dn > > + > > # > > # Compile multi-fn raw device interface # diff --git > > a/drivers/raw/Makefile b/drivers/raw/Makefile index > > e16da8d95..5aa608e1e 100644 > > --- a/drivers/raw/Makefile > > +++ b/drivers/raw/Makefile > > @@ -15,5 +15,7 @@ DIRS-$(CONFIG_RTE_LIBRTE_PMD_NTB_RAWDEV) +=3D > ntb > > DIRS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_DMA_RAWDEV) +=3D > octeontx2_dma > > DIRS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EP_RAWDEV) +=3D > octeontx2_ep > > DIRS-y +=3D common > > +DIRS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_MB_RAWDEV) +=3D aesni_mb > > +DEPDIRS-aesni_mb :=3D common > > > > include $(RTE_SDK)/mk/rte.subdir.mk > > diff --git a/drivers/raw/aesni_mb/Makefile > > b/drivers/raw/aesni_mb/Makefile new file mode 100644 index > > 000000000..0a40b75b4 > > --- /dev/null > > +++ b/drivers/raw/aesni_mb/Makefile > > @@ -0,0 +1,47 @@ > > +# SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2020 Intel > > +Corporation. > > + > > +include $(RTE_SDK)/mk/rte.vars.mk > > + > > +# library name > > +LIB =3D librte_pmd_aesni_mb_rawdev.a > > + > > +# build flags > > +CFLAGS +=3D -O3 > > +CFLAGS +=3D $(WERROR_FLAGS) > > +CFLAGS +=3D -DALLOW_EXPERIMENTAL_API > > + > > +# versioning export map > > +EXPORT_MAP :=3D rte_rawdev_aesni_mb_version.map > > + > > +# external library dependencies > > +LDLIBS +=3D -lIPSec_MB > > +LDLIBS +=3D -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring LDLIBS +=3D > > +-lrte_rawdev LDLIBS +=3D -lrte_bus_vdev LDLIBS +=3D -lrte_multi_fn > > + > > +ifneq ($(CONFIG_RTE_LIBRTE_MULTI_FN_COMMON),y) > > +$(error "RTE_LIBRTE_MULTI_FN_COMMON is required to build aesni_mb > raw > > device") > > +endif > > + > > +IMB_HDR =3D $(shell echo '\#include ' | \ > > + $(CC) -E $(EXTRA_CFLAGS) - | grep 'intel-ipsec-mb.h' | \ > > + head -n1 | cut -d'"' -f2) > > + > > +# Detect library version > > +IMB_VERSION =3D $(shell grep -e "IMB_VERSION_STR" $(IMB_HDR) | cut > > +-d'"' - > > f2) > > +IMB_VERSION_NUM =3D $(shell grep -e "IMB_VERSION_NUM" $(IMB_HDR) | > cut > > -d' ' -f3) > > + > > +ifeq ($(IMB_VERSION),) > > +$(error "IPSec_MB version >=3D 0.53.3 is required to build aesni_mb ra= w > > +device") endif > > + > > +ifeq ($(shell expr $(IMB_VERSION_NUM) \< 0x3503), 1) $(error > > +"IPSec_MB version >=3D 0.53.3 is required to build aesni_mb raw > > +device") endif > > + > > +SRCS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_MB_RAWDEV) +=3D > > aesni_mb_rawdev.c > > +SRCS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_MB_RAWDEV) +=3D > > aesni_mb_rawdev_test.c > > + > > +include $(RTE_SDK)/mk/rte.lib.mk > > diff --git a/drivers/raw/aesni_mb/aesni_mb_rawdev.c > > b/drivers/raw/aesni_mb/aesni_mb_rawdev.c > > new file mode 100644 > > index 000000000..946bdd871 > > --- /dev/null > > +++ b/drivers/raw/aesni_mb/aesni_mb_rawdev.c > > @@ -0,0 +1,1536 @@ > > +/* SPDX-License-Identifier: BSD-3-Clause > > + * Copyright(c) 2020 Intel Corporation. > > + */ > > + > > +#include > > + > > +#include > > + > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include >=20 > No need for , , , > and . > I think is missing, though, for "rte_crypto_sym_xform". >=20 > ... >=20 > > +static bool > > +docsis_crc_crypto_encrypt_check(struct rte_multi_fn_xform *xform) { > > + struct rte_crypto_sym_xform *crypto_sym; > > + struct rte_multi_fn_err_detect_xform *err_detect; > > + struct rte_multi_fn_xform *next; > > + > > + if (xform->type =3D=3D RTE_MULTI_FN_XFORM_TYPE_ERR_DETECT) { > > + > > + err_detect =3D &xform->err_detect; > > + next =3D xform->next; > > + > > + if (err_detect->algo =3D=3D > > + RTE_MULTI_FN_ERR_DETECT_CRC32_ETH && > > + err_detect->op =3D=3D > > + RTE_MULTI_FN_ERR_DETECT_OP_GENERATE > > && >=20 > I don't think leading spaces are allowed. Generally, double tab is used i= n multi- > line if's. Same applies in other parts of the code. >=20 > > + next !=3D NULL && > > + next->type =3D=3D RTE_MULTI_FN_XFORM_TYPE_CRYPTO_SYM) { > > + >=20 > ... >=20 > > +static bool > > +docsis_crypto_decrypt_crc_check(struct rte_multi_fn_xform *xform) { > > + struct rte_crypto_sym_xform *crypto_sym; > > + struct rte_multi_fn_err_detect_xform *err_detect; > > + struct rte_multi_fn_xform *next; > > + > > + if (xform->type =3D=3D RTE_MULTI_FN_XFORM_TYPE_CRYPTO_SYM) { >=20 > I think in order to reduce this many indentation levels, you can check fo= r the > opposite here and return false. >=20 > If (xform->type !=3D RTE...) > return false > ... >=20 > > + > > +static bool > > +pon_crc_crypto_encrypt_bip_check(struct rte_multi_fn_xform *xform) { > > + struct rte_crypto_sym_xform *crypto_sym; > > + struct rte_multi_fn_err_detect_xform *err_detect; > > + struct rte_multi_fn_xform *next; > > + > > + if (xform->type =3D=3D RTE_MULTI_FN_XFORM_TYPE_ERR_DETECT) { > > + > > + err_detect =3D &xform->err_detect; > > + next =3D xform->next; >=20 > Same as above here. >=20 > > + > > + if (err_detect->algo =3D=3D > > + RTE_MULTI_FN_ERR_DETECT_CRC32_ETH && > > + err_detect->op =3D=3D >=20 > > +static bool > > +pon_bip_crypto_decrypt_crc_check(struct rte_multi_fn_xform *xform) { > > + struct rte_crypto_sym_xform *crypto_sym; > > + struct rte_multi_fn_err_detect_xform *err_detect; > > + struct rte_multi_fn_xform *next; > > + > > + if (xform->type =3D=3D RTE_MULTI_FN_XFORM_TYPE_ERR_DETECT) { > > + > > + err_detect =3D &xform->err_detect; > > + next =3D xform->next; >=20 > Same as above. >=20 > > +} > > + > > +static enum aesni_mb_rawdev_op > > +session_support_check(struct rte_multi_fn_xform *xform) { > > + enum aesni_mb_rawdev_op op =3D > > AESNI_MB_RAWDEV_OP_NOT_SUPPORTED; > > + >=20 > ... >=20 > > +static inline int > > +docsis_crypto_crc_check(struct rte_multi_fn_op *first_op, > > + struct rte_multi_fn_op *cipher_op, > > + struct rte_multi_fn_op *crc_op) > > +{ > > + struct rte_multi_fn_op *err_op =3D NULL; > > + uint8_t err_op_status; > > + const uint32_t offset_diff =3D DOCSIS_CIPHER_CRC_OFFSET_DIFF; > > + > > + if (cipher_op->crypto_sym.cipher.data.length && > > + crc_op->err_detect.data.length) { > > + /* Cipher offset must be at least 12 greater than CRC offset */ > > + if (cipher_op->crypto_sym.cipher.data.offset < > > + ((uint32_t)crc_op->err_detect.data.offset + offset_diff)) { > > + err_op =3D crc_op; > > + err_op_status =3D > > RTE_MULTI_FN_ERR_DETECT_OP_STATUS_ERROR; > > + /* > > + * Cipher length must be at least 8 less than CRC length, taking > > + * known differences of what is ciphered and what is crc'ed into > > + * account > > + */ > > + } else if ((cipher_op->crypto_sym.cipher.data.length + > > + DOCSIS_CIPHER_CRC_LENGTH_DIFF) > >=20 > For consistency, you can use offset_diff here too, instead of the macro. >=20 > > + crc_op->err_detect.data.length) { > > + err_op =3D crc_op; > > + err_op_status =3D > > RTE_MULTI_FN_ERR_DETECT_OP_STATUS_ERROR; > > + } > > + } >=20 > ... >=20 > > +static inline int > > +mb_job_params_set(JOB_AES_HMAC *job, > > + struct aesni_mb_rawdev_qp *qp, > > + struct rte_multi_fn_op *op, > > + uint8_t *output_idx) > > +{ > > + struct rte_mbuf *m_src, *m_dst; > > + struct rte_multi_fn_op *cipher_op; > > + struct rte_multi_fn_op *crc_op; > > + struct rte_multi_fn_op *bip_op; > > + uint32_t cipher_offset; > > + struct aesni_mb_rawdev_session *session; > > + >=20 > ... >=20 > > + cipher_op->crypto_sym.cipher.data.length; >=20 > I would declare a variable like sym_op to reduce the length of these. > Maybe also for err_dectect. >=20 > > + > > + switch (session->op) { > > + case AESNI_MB_RAWDEV_OP_DOCSIS_CRC_CRYPTO: > > + case AESNI_MB_RAWDEV_OP_DOCSIS_CRYPTO_CRC: > > + job->hash_start_src_offset_in_bytes =3D > > + crc_op- >=20 > ... >=20 >=20 > > +++ b/drivers/raw/aesni_mb/aesni_mb_rawdev_test.c > > @@ -0,0 +1,1102 @@ > > +/* SPDX-License-Identifier: BSD-3-Clause > > + * Copyright(c) 2020 Intel Corporation. >=20 > Could this be moved under the test app? Looks odd here. Just realized that other drivers are also including tests in their folders, so I guess this is consistent too (sorry, I wasn't used to this new method)= . Thanks, Pablo >=20 > Thanks, > Pablo