[dpdk-dev] [PATCH v2 0/5] Chained Mbufs support in SW PMDs

Tomasz Kulasek tomaszx.kulasek at intel.com
Thu Dec 29 18:12:18 CET 2016


This patch set adds support of scattered-gather list for SW PMDs.

As of now, application needs to reserve continuous block of memory for
mbufs which is not always the case. Hence needed to support chaining of
mbufs which are smaller in size but can be used if chained.


Above work involves:

 a) Create mbuf functions to coalesce mbuf chains into a single mbuf.
 b) For each software poll mode driver code to detect chained mbufs
    support and coalesce these before preforming crypto.
 c) Add relevant unit tests to test the functionality.


Known limitations for openssl PMD:

While libcrypto library expects continuous destination buffer for
output of cipher operations, implementation of openssl PMD is limited
the same way, and requires contigous destination mbuf.


changes in v2:
 - add support for sgl in openssl PMD
 - rte_pktmbuf_coalesce replaced with rte_pktmbuf_linearize
 - extended test vector data for aes gcm from 60 to 2048 bytes

Tomasz Kulasek (5):
  rte_mbuf: add rte_pktmbuf_linearize
  test: add rte_pktmbuf_linearize unit tests
  crypto: add sgl support in sw PMDs
  crypto: add sgl support in openssl PMD
  test: add sgl unit tests for crypto devices

 app/test/test_cryptodev.c                  |  589 +++++++++++++++++++++++++++-
 app/test/test_cryptodev.h                  |  139 +++++++
 app/test/test_cryptodev_aes_test_vectors.h |   54 ++-
 app/test/test_cryptodev_blockcipher.c      |  181 ++++++---
 app/test/test_cryptodev_blockcipher.h      |    3 +-
 app/test/test_cryptodev_des_test_vectors.h |   29 ++
 app/test/test_cryptodev_gcm_test_vectors.h |  557 +++++++++++++++++++++++++-
 app/test/test_mbuf.c                       |  123 ++++++
 doc/guides/cryptodevs/openssl.rst          |    2 +-
 drivers/crypto/aesni_gcm/aesni_gcm_pmd.c   |   14 +
 drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c |   19 +-
 drivers/crypto/kasumi/rte_kasumi_pmd.c     |   13 +
 drivers/crypto/null/null_crypto_pmd.c      |    3 +-
 drivers/crypto/openssl/rte_openssl_pmd.c   |  329 ++++++++++++----
 drivers/crypto/snow3g/rte_snow3g_pmd.c     |   15 +
 drivers/crypto/zuc/rte_zuc_pmd.c           |   13 +
 lib/librte_cryptodev/rte_cryptodev.c       |    4 +-
 lib/librte_cryptodev/rte_cryptodev.h       |    3 +-
 lib/librte_mbuf/rte_mbuf.h                 |   56 +++
 19 files changed, 1991 insertions(+), 155 deletions(-)

-- 
1.7.9.5



More information about the dev mailing list