[dpdk-dev] [PATCH v3 0/8] Add crypto PMD optimized for ARMv8

Jerin Jacob jerin.jacob at caviumnetworks.com
Mon Jan 16 09:02:25 CET 2017


On Mon, Jan 16, 2017 at 06:57:12AM +0000, Hemant Agrawal wrote:
> Hi Zbigniew,
> 
> 
> > -----Original Message-----
> > From: Zbigniew Bodek [mailto:zbigniew.bodek at caviumnetworks.com]
> > Subject: Re: [PATCH v3 0/8] Add crypto PMD optimized for ARMv8
> > On 13.01.2017 09:07, Hemant Agrawal wrote:
> > > On 1/4/2017 11:03 PM, zbigniew.bodek at caviumnetworks.com wrote:
> > >> From: Zbigniew Bodek <zbigniew.bodek at caviumnetworks.com>
> > >>
> > >> Introduce crypto poll mode driver using ARMv8 cryptographic
> > >> extensions. This PMD is optimized to provide performance boost for
> > >> chained crypto operations processing, such as:
> > >> * encryption + HMAC generation
> > >> * decryption + HMAC validation.
> > >> In particular, cipher only or hash only operations are not provided.
> > >
> > > Do you have a plan to add the crypto only, auth/hash only support into
> > > this driver?
> > 
> > OpenSSL driver is already implementing that and it is optimized for ARMv8.
> > 
> [Hemant]  Agreed that openSSL driver implement it, however it will make the application little complex to initiates both driver instances and then choose the driver based on the algorithm.

We started with chained crypto as primary data-plane use-case like IPSec
need the chained operation. Agreed on single driver for both chained and non
chained. Feel free to contribute.

> 
> > > Also, do you plan to add additional cases w.r.t supported by other
> > > crypto driver?
> > 
> > We may do it in the future but this depends on our resource availability.
> > >
> > >> Performance gain can be observed in tests against OpenSSL PMD which
> > >> also uses ARM crypto extensions for packets processing.
> > >>
> > >> Exemplary crypto performance tests comparison:
> > >>
> > >> cipher_hash. cipher algo: AES_CBC
> > >> auth algo: SHA1_HMAC cipher key size=16.
> > >> burst_size: 64 ops
> > >>
> > >> ARMv8 PMD improvement over OpenSSL PMD (Optimized for ARMv8 cipher
> > >> only and hash only cases):
> > >>
> > >> Buffer
> > >> Size(B)   OPS(M)      Throughput(Gbps)
> > >> 64        729 %        742 %
> > >> 128       577 %        592 %
> > >> 256       483 %        476 %
> > >> 512       336 %        351 %
> > >> 768       300 %        286 %
> > >> 1024      263 %        250 %
> > >> 1280      225 %        229 %
> > >> 1536      214 %        213 %
> > >> 1792      186 %        203 %
> > >> 2048      200 %        193 %
> > >>
> > >> The driver currently supports AES-128-CBC in combination with: SHA256
> > >> HMAC and SHA1 HMAC.
> > >> The core crypto functionality of this driver is provided by the
> > >> external armv8_crypto library that can be downloaded from the Cavium
> > >> repository:
> > >> https://github.com/caviumnetworks/armv8_crypto
> > >>
> [Hemant] Thanks for the good work. 
> Is it possible to get it hosted on a standard and neutral place? E.g. Linaro
> It will make it easier for other ARM vendors to contribute. 
>

Sure. We are OK to host any place you suggest.
This was one of the reasons why I thought of having asm code in
driver/crypto/armv8 itself. But maintainers had a different view on it.



More information about the dev mailing list