From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomasz Kulasek Subject: [PATCH v2 0/5] Chained Mbufs support in SW PMDs Date: Thu, 29 Dec 2016 18:12:18 +0100 Message-ID: <1483031543-21196-1-git-send-email-tomaszx.kulasek@intel.com> References: <1480698466-17620-1-git-send-email-tomaszx.kulasek@intel.com> Cc: olivier.matz@6wind.com To: dev@dpdk.org Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 505032C4F for ; Thu, 29 Dec 2016 18:12:29 +0100 (CET) In-Reply-To: <1480698466-17620-1-git-send-email-tomaszx.kulasek@intel.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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