From mboxrd@z Thu Jan 1 00:00:00 1970 From: "De Lara Guarch, Pablo" Subject: Re: [PATCH v2 1/4] libcrypto_pmd: initial implementation of SW crypto device Date: Mon, 19 Sep 2016 22:52:37 +0000 Message-ID: References: <1474275582-6108-1-git-send-email-michalx.k.jastrzebski@intel.com> <1474275582-6108-2-git-send-email-michalx.k.jastrzebski@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Cc: "Mrozowicz, SlawomirX" , "Kobylinski, MichalX" , "Kulasek, TomaszX" , "Mrzyglod, DanielX T" To: "Jastrzebski, MichalX K" , "dev@dpdk.org" Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id 18D679E7 for ; Tue, 20 Sep 2016 00:52:40 +0200 (CEST) In-Reply-To: <1474275582-6108-2-git-send-email-michalx.k.jastrzebski@intel.com> Content-Language: en-US List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" > -----Original Message----- > From: Jastrzebski, MichalX K > Sent: Monday, September 19, 2016 2:00 AM > To: dev@dpdk.org > Cc: De Lara Guarch, Pablo; Mrozowicz, SlawomirX; Kobylinski, MichalX; > Kulasek, TomaszX; Mrzyglod, DanielX T > Subject: [PATCH v2 1/4] libcrypto_pmd: initial implementation of SW > crypto device >=20 > From: Slawomir Mrozowicz >=20 > This code provides the initial implementation of the libcrypto > poll mode driver. All cryptography operations are using Openssl > library crypto API. Each algorithm uses EVP_ interface from > openssl API - which is recommended by Openssl maintainers. >=20 > LibCrypto PMD has support for: >=20 > Supported cipher algorithms: > RTE_CRYPTO_CIPHER_3DES_CBC > RTE_CRYPTO_CIPHER_AES_CBC > RTE_CRYPTO_CIPHER_AES_CTR > RTE_CRYPTO_CIPHER_3DES_CTR > RTE_CRYPTO_CIPHER_AES_GCM >=20 > Supported authentication algorithms: > RTE_CRYPTO_AUTH_AES_GMAC > RTE_CRYPTO_AUTH_MD5 > RTE_CRYPTO_AUTH_SHA1 > RTE_CRYPTO_AUTH_SHA224 > RTE_CRYPTO_AUTH_SHA256 > RTE_CRYPTO_AUTH_SHA384 > RTE_CRYPTO_AUTH_SHA512 > RTE_CRYPTO_AUTH_MD5_HMAC > RTE_CRYPTO_AUTH_SHA1_HMAC > RTE_CRYPTO_AUTH_SHA224_HMAC > RTE_CRYPTO_AUTH_SHA256_HMAC > RTE_CRYPTO_AUTH_SHA384_HMAC > RTE_CRYPTO_AUTH_SHA512_HMAC >=20 > Installation > ------------ > To compile libcrypto PMD It has to be enabled in the config/common_base > file and appropriate openssl packages have to be installed in the build > environment. >=20 I think the supported algorithms and how to install can be removed from the= commit message, as message is too big (and this information is present in the documentation= ). > Signed-off-by: Slawomir Mrozowicz > Signed-off-by: Michal Kobylinski > Signed-off-by: Tomasz Kulasek > Signed-off-by: Daniel Mrzyglod > --- ... > diff --git a/doc/guides/cryptodevs/libcrypto.rst > b/doc/guides/cryptodevs/libcrypto.rst > new file mode 100644 > index 0000000..f9daa05 > --- /dev/null > +++ b/doc/guides/cryptodevs/libcrypto.rst > @@ -0,0 +1,113 @@ ... > + > +LibCrypto Crypto Poll Mode Driver > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Remove the extra "=3D" and extra blank line below. > + > + > +This code provides the initial implementation of the libcrypto poll mode > +driver All cryptography operations are using Openssl library crypto API. Missing "." before All. > +Each algorithm uses EVP_ interface from openssl API - which is > recommended > +by Openssl maintainers. > + > +For more details about openssl library please visit openssl webpage: > +https://www.openssl.org/ > + > +Features > +-------- > + > +LibCrypto PMD has support for: > + > +Supported cipher algorithms: > +* ``RTE_CRYPTO_CIPHER_3DES_CBC`` > +* ``RTE_CRYPTO_CIPHER_AES_CBC`` > +* ``RTE_CRYPTO_CIPHER_AES_CTR`` > +* ``RTE_CRYPTO_CIPHER_3DES_CTR`` > +* ``RTE_CRYPTO_CIPHER_AES_GCM`` > + > +Supported authentication algorithms: > +* ``RTE_CRYPTO_AUTH_AES_GMAC`` > +* ``RTE_CRYPTO_AUTH_MD5`` > +* ``RTE_CRYPTO_AUTH_SHA1`` > +* ``RTE_CRYPTO_AUTH_SHA224`` > +* ``RTE_CRYPTO_AUTH_SHA256`` > +* ``RTE_CRYPTO_AUTH_SHA384`` > +* ``RTE_CRYPTO_AUTH_SHA512`` > +* ``RTE_CRYPTO_AUTH_MD5_HMAC`` > +* ``RTE_CRYPTO_AUTH_SHA1_HMAC`` > +* ``RTE_CRYPTO_AUTH_SHA224_HMAC`` > +* ``RTE_CRYPTO_AUTH_SHA256_HMAC`` > +* ``RTE_CRYPTO_AUTH_SHA384_HMAC`` > +* ``RTE_CRYPTO_AUTH_SHA512_HMAC`` > + > + > +Installation > +------------ Blank line here. > +To compile libcrypto PMD It has to be enabled in the Comma after PMD. > config/common_base file > +and appropriate openssl packages have to be installed in the build > environment. > + > +The newest openssl library version is supported: > +* 1.0.2h-fips 3 May 2016. > +Older versions that were also verified: > +* 1.0.1f 6 Jan 2014 > +* 1.0.1 14 Mar 2012 > + > +For Ubuntu 14.04 LTS these packages have to be installed in the build > system: > +sudo apt-get install openssl > +sudo apt-get install libc6-dev-i386 (for i686-native-linuxapp-gcc target= ) > + > +This code was also verified on Fedora 24. > +This code was NOT yet verified on FreeBSD. > + > +Initialization > +-------------- > + > +User can use app/test application to check how to use this pmd and to > verify > +crypto processing. > + > +Test name is cryptodev_libcrypto_autotest. > +For performance test cryptodev_libcrypto_perftest can be used. > + > +To verify real traffic l2fwd-crypto example can be used with this comman= d: > +sudo ./build/l2fwd-crypto -c 0x3 -n 4 --vdev "cryptodev_libcrypto_pmd" > +--vdev "cryptodev_libcrypto_pmd"-- -p 0x3 --chain CIPHER_HASH > +--cipher_op ENCRYPT --cipher_algo AES_CBC > +--cipher_key 00:01:02:03:04:05:06:07:08:09:0a:0b:0c:0d:0e:0f > +--iv 00:01:02:03:04:05:06:07:08:09:0a:0b:0c:0d:0e:ff > +--auth_op GENERATE --auth_algo SHA1_HMAC > +--auth_key > 11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11 > +:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:1 > 1:11:11 > +:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11 Use code-block here. > + > +Limitations > +----------- Blank line here. > +* Maximum number of sessions is 2048. > +* Chained mbufs are not supported. > +* Hash only is not supported for GCM and GMAC. > +* Cipher only is not supported for GCM and GMAC. ... > diff --git a/mk/rte.app.mk b/mk/rte.app.mk > index 1a0095b..67c0aa9 100644 > --- a/mk/rte.app.mk > +++ b/mk/rte.app.mk > @@ -135,7 +135,8 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_MB) > +=3D -lrte_pmd_aesni_mb > _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_MB) +=3D - > L$(AESNI_MULTI_BUFFER_LIB_PATH) -lIPSec_MB > _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_GCM) +=3D - > lrte_pmd_aesni_gcm -lcrypto > _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_GCM) +=3D - > L$(AESNI_MULTI_BUFFER_LIB_PATH) -lIPSec_MB > -_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_NULL_CRYPTO) +=3D - > lrte_pmd_null_crypto > +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_LIBCRYPTO) +=3D - > lrte_pmd_libcrypto -lcrypto > +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_NULL_CRYPTO)+=3D - > lrte_pmd_null_crypto Space removed here by mistake. =20 > _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_QAT) +=3D -lrte_pmd_qat -lcrypto > _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_SNOW3G) +=3D -lrte_pmd_snow3g > _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_SNOW3G) +=3D - > L$(LIBSSO_SNOW3G_PATH)/build -lsso_snow3g > -- > 1.9.1