From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id 5E62229AC for ; Wed, 17 May 2017 11:00:08 +0200 (CEST) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga105.fm.intel.com with ESMTP; 17 May 2017 02:00:07 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.38,353,1491289200"; d="scan'208";a="857767721" Received: from irsmsx101.ger.corp.intel.com ([163.33.3.153]) by FMSMGA003.fm.intel.com with ESMTP; 17 May 2017 02:00:06 -0700 Received: from irsmsx155.ger.corp.intel.com (163.33.192.3) by IRSMSX101.ger.corp.intel.com (163.33.3.153) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 17 May 2017 10:00:05 +0100 Received: from irsmsx108.ger.corp.intel.com ([169.254.11.239]) by irsmsx155.ger.corp.intel.com ([169.254.14.202]) with mapi id 14.03.0319.002; Wed, 17 May 2017 10:00:05 +0100 From: "De Lara Guarch, Pablo" To: "Mrozowicz, SlawomirX" , "Doherty, Declan" CC: "dev@dpdk.org" , "Mrozowicz, SlawomirX" Thread-Topic: [dpdk-dev] [PATCH] cryptodev: remove crypto device type enumeration Thread-Index: AQHSzWIkhM7pVQG8G0m4uTq2xmsg/aH4MUPQ Date: Wed, 17 May 2017 09:00:04 +0000 Message-ID: References: <20170515095542.108383-1-slawomirx.mrozowicz@intel.com> In-Reply-To: <20170515095542.108383-1-slawomirx.mrozowicz@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiN2RhMjIzYjctNTNmMC00NDYyLWFkYjQtNTNkODU0NDc4ZDUyIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6InlBOTVTTWJyaFVJMkVrTlNlMlNUTHlOYzBDM0tqd2sxdkF0bFc4akUyNVE9In0= x-ctpclassification: CTP_IC x-originating-ip: [163.33.239.182] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH] cryptodev: remove crypto device type enumeration 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: , X-List-Received-Date: Wed, 17 May 2017 09:00:09 -0000 Hi Slawomir, > -----Original Message----- > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Slawomir > Mrozowicz > Sent: Monday, May 15, 2017 10:56 AM > To: Doherty, Declan > Cc: dev@dpdk.org; Mrozowicz, SlawomirX > Subject: [dpdk-dev] [PATCH] cryptodev: remove crypto device type > enumeration >=20 > Changes device type identification to be based on a unique > driver id replacing the current device type enumeration, which needed > library changes every time a new crypto driver was added. >=20 > The driver id is assigned dynamically during driver registration using > the new macro RTE_PMD_REGISTER_CRYPTO_DRIVER which returns a > unique > uint8_t identifier for that driver. New APIs are also introduced > to allow retrieval of the driver id using the driver name. >=20 > Signed-off-by: Slawomir Mrozowicz There are compilation issues with the patch: http://dpdk.org/ml/archives/te= st-report/2017-May/019815.html Could you add some information in the release notes? There is an API change here, that should be noted. > --- > doc/guides/prog_guide/cryptodev_lib.rst | 5 +- > drivers/crypto/aesni_gcm/aesni_gcm_pmd.c | 12 +- > drivers/crypto/aesni_gcm/aesni_gcm_pmd_ops.c | 2 +- > drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c | 12 +- > drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c | 2 +- > drivers/crypto/armv8/rte_armv8_pmd.c | 12 +- > drivers/crypto/armv8/rte_armv8_pmd_ops.c | 2 +- > drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 10 +- > drivers/crypto/kasumi/rte_kasumi_pmd.c | 12 +- > drivers/crypto/kasumi/rte_kasumi_pmd_ops.c | 2 +- > drivers/crypto/null/null_crypto_pmd.c | 12 +- > drivers/crypto/null/null_crypto_pmd_ops.c | 2 +- > drivers/crypto/openssl/rte_openssl_pmd.c | 12 +- > drivers/crypto/openssl/rte_openssl_pmd_ops.c | 2 +- > drivers/crypto/qat/qat_crypto.c | 7 +- > drivers/crypto/qat/rte_qat_cryptodev.c | 8 +- > drivers/crypto/scheduler/rte_cryptodev_scheduler.c | 31 ++-- > drivers/crypto/scheduler/scheduler_pmd.c | 7 +- > drivers/crypto/scheduler/scheduler_pmd_ops.c | 2 +- > drivers/crypto/scheduler/scheduler_pmd_private.h | 2 +- > drivers/crypto/snow3g/rte_snow3g_pmd.c | 12 +- > drivers/crypto/snow3g/rte_snow3g_pmd_ops.c | 2 +- > drivers/crypto/zuc/rte_zuc_pmd.c | 12 +- > drivers/crypto/zuc/rte_zuc_pmd_ops.c | 2 +- > lib/librte_cryptodev/rte_cryptodev.c | 39 ++++- > lib/librte_cryptodev/rte_cryptodev.h | 68 ++++--- > lib/librte_cryptodev/rte_cryptodev_pmd.h | 2 +- > lib/librte_cryptodev/rte_cryptodev_version.map | 11 +- > test/test/test_cryptodev.c | 195 ++++++++++++++-= ------ > test/test/test_cryptodev_blockcipher.c | 68 ++++--- > test/test/test_cryptodev_blockcipher.h | 2 +- > test/test/test_cryptodev_perf.c | 124 ++++++++----- > 32 files changed, 472 insertions(+), 221 deletions(-) >=20 ... > diff --git a/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c > b/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c > index 101ef98..64a0ba0 100644 > --- a/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c > +++ b/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c > @@ -143,8 +143,9 @@ aesni_gcm_get_session(struct aesni_gcm_qp *qp, > struct rte_crypto_sym_op *op) > struct aesni_gcm_session *sess =3D NULL; >=20 > if (op->sess_type =3D=3D RTE_CRYPTO_SYM_OP_WITH_SESSION) { > - if (unlikely(op->session->dev_type > - !=3D > RTE_CRYPTODEV_AESNI_GCM_PMD)) > + if (unlikely(op->session->driver_id !=3D > + rte_cryptodev_driver_id_get( > + I would store the driver id of the PMD somewhere (maybe in aesni_gcm_qp or = access dev->driver_id?), and not call this function for all operations (same for other PMDs). ... > diff --git a/lib/librte_cryptodev/rte_cryptodev.h > b/lib/librte_cryptodev/rte_cryptodev.h > index 88aeb87..533017c 100644 > --- a/lib/librte_cryptodev/rte_cryptodev.h > +++ b/lib/librte_cryptodev/rte_cryptodev.h ... > + > +/** > + * Provide driver name. > + * > + * @param driver_id > + * The driver identifier. > + * @return > + * The driver name or null if no driver found > + */ > +char *rte_cryptodev_driver_name_get(uint8_t driver_id); > + > +/** > + * Allocate driver identifier. > + * Mark this as internal, as this will only be used by PMDs, not apps.