Hi Pablo,

On 6/28/2018 6:23 AM, Pablo de Lara wrote:

The current mbuf scatter gatter feature flag is
too ambiguous, as it is not clear if input and/or output
buffers can be scatter gather mbufs or not, plus
if in-place and/or out-of-place is supported.

Therefore, five new flags will replace this flag:
- RTE_CRYPTODEV_FF_IN_PLACE_SGL
- RTE_CRYPTODEV_FF_OUT_OF_PLACE_SGL_IN_SGL_OUT
- RTE_CRYPTODEV_FF_OUT_OF_PLACE_SGL_IN_FB_OUT
- RTE_CRYPTODEV_FF_OUT_OF_PLACE_FB_IN_SGL_OUT
- RTE_CRYPTODEV_FF_OUT_OF_PLACE_FB_IN_FB_OUT

It is better to have OOP instead of OUT_OF_PLACE and IP for INPLACE?

I guess RTE_CRYPTODEV_FF_OUT_OF_PLACE_FB_IN_FB_OUT is supported in most
of the drivers which support OOP,  I can see some of them are missing.


Signed-off-by: Pablo de Lara <pablo.de.lara.gua...@intel.com>
---
  doc/guides/rel_notes/deprecation.rst        |  2 --
  doc/guides/rel_notes/release_18_08.rst      |  8 +++++
  drivers/crypto/aesni_gcm/aesni_gcm_pmd.c    |  2 +-
  drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c |  6 +++-
  drivers/crypto/dpaa_sec/dpaa_sec.c          |  6 +++-
  drivers/crypto/null/null_crypto_pmd.c       |  2 +-
  drivers/crypto/openssl/rte_openssl_pmd.c    |  2 +-
  drivers/crypto/qat/qat_sym_pmd.c            |  6 +++-
  lib/librte_cryptodev/rte_cryptodev.c        | 12 ++++++--
  lib/librte_cryptodev/rte_cryptodev.h        | 46 +++++++++++++++++++----------
  test/test/test_cryptodev.c                  | 31 +++++++++++++------
  test/test/test_cryptodev_blockcipher.c      | 21 ++++++++++---
  12 files changed, 106 insertions(+), 38 deletions(-)

diff --git a/doc/guides/rel_notes/deprecation.rst 
b/doc/guides/rel_notes/deprecation.rst
index 9a73b1d8e..62d635b74 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -105,5 +105,3 @@ Deprecation Notices
      ``rte_cryptodev_queue_pair_dettach_sym_session()`` will be deprecated from
      18.05 and removed in 18.08, as there are no drivers doing anything useful
      with them.
-  - Some feature flags such as ``RTE_CRYPTODEV_FF_MBUF_SCATTER_GATHER`` are 
ambiguous,
-    so some will be replaced by more explicit flags.
diff --git a/doc/guides/rel_notes/release_18_08.rst 
b/doc/guides/rel_notes/release_18_08.rst
index e482d3d5f..2a136d88c 100644
--- a/doc/guides/rel_notes/release_18_08.rst
+++ b/doc/guides/rel_notes/release_18_08.rst
@@ -78,6 +78,14 @@ API Changes
    - ``rte_cryptodev_get_private_session_size`` is replaced with
      ``rte_cryptodev_sym_get_private_session_size``
+* cryptodev: Feature flag ``RTE_CRYPTODEV_FF_MBUF_SCATTER_GATHER`` is
+  replaced with the following more explicit flags:
+  - ``RTE_CRYPTODEV_FF_IN_PLACE_SGL``
+  - ``RTE_CRYPTODEV_FF_OUT_OF_PLACE_SGL_IN_SGL_OUT``
+  - ``RTE_CRYPTODEV_FF_OUT_OF_PLACE_SGL_IN_FB_OUT``
+  - ``RTE_CRYPTODEV_FF_OUT_OF_PLACE_FB_IN_SGL_OUT``
+  - ``RTE_CRYPTODEV_FF_OUT_OF_PLACE_FB_IN_FB_OUT``
+
ABI Changes
  -----------
diff --git a/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c 
b/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c
index cd5b1952b..03917f220 100644
--- a/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c
+++ b/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c
@@ -492,7 +492,7 @@ aesni_gcm_create(const char *name,
        dev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO |
                        RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING |
                        RTE_CRYPTODEV_FF_CPU_AESNI |
-                       RTE_CRYPTODEV_FF_MBUF_SCATTER_GATHER;
+                       RTE_CRYPTODEV_FF_OUT_OF_PLACE_SGL_IN_FB_OUT;

RTE_CRYPTODEV_FF_OUT_OF_PLACE_FB_IN_FB_OUT ??

switch (vector_mode) {
        case RTE_AESNI_GCM_SSE:
diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c 
b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
index 1b1c30d85..4daee5f59 100644
--- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
@@ -2762,7 +2762,11 @@ dpaa2_sec_dev_init(struct rte_cryptodev *cryptodev)
                        RTE_CRYPTODEV_FF_HW_ACCELERATED |
                        RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING |
                        RTE_CRYPTODEV_FF_SECURITY |
-                       RTE_CRYPTODEV_FF_MBUF_SCATTER_GATHER;
+                       RTE_CRYPTODEV_FF_IN_PLACE_SGL |
+                       RTE_CRYPTODEV_FF_OUT_OF_PLACE_SGL_IN_SGL_OUT |
+                       RTE_CRYPTODEV_FF_OUT_OF_PLACE_SGL_IN_FB_OUT |
+                       RTE_CRYPTODEV_FF_OUT_OF_PLACE_FB_IN_SGL_OUT |
+                       RTE_CRYPTODEV_FF_OUT_OF_PLACE_FB_IN_FB_OUT;
internals = cryptodev->data->dev_private; diff --git a/drivers/crypto/dpaa_sec/dpaa_sec.c b/drivers/crypto/dpaa_sec/dpaa_sec.c
index b96552c57..8ad25f2be 100644
--- a/drivers/crypto/dpaa_sec/dpaa_sec.c
+++ b/drivers/crypto/dpaa_sec/dpaa_sec.c
@@ -2271,7 +2271,11 @@ dpaa_sec_dev_init(struct rte_cryptodev *cryptodev)
                        RTE_CRYPTODEV_FF_HW_ACCELERATED |
                        RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING |
                        RTE_CRYPTODEV_FF_SECURITY |
-                       RTE_CRYPTODEV_FF_MBUF_SCATTER_GATHER;
+                       RTE_CRYPTODEV_FF_IN_PLACE_SGL |
+                       RTE_CRYPTODEV_FF_OUT_OF_PLACE_SGL_IN_SGL_OUT |
+                       RTE_CRYPTODEV_FF_OUT_OF_PLACE_SGL_IN_FB_OUT |
+                       RTE_CRYPTODEV_FF_OUT_OF_PLACE_FB_IN_SGL_OUT |
+                       RTE_CRYPTODEV_FF_OUT_OF_PLACE_FB_IN_FB_OUT;
internals = cryptodev->data->dev_private;
        internals->max_nb_queue_pairs = RTE_DPAA_MAX_NB_SEC_QPS;
diff --git a/drivers/crypto/null/null_crypto_pmd.c 
b/drivers/crypto/null/null_crypto_pmd.c
index 478ac0b62..224ba7233 100644
--- a/drivers/crypto/null/null_crypto_pmd.c
+++ b/drivers/crypto/null/null_crypto_pmd.c
@@ -177,7 +177,7 @@ cryptodev_null_create(const char *name,
dev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO |
                        RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING |
-                       RTE_CRYPTODEV_FF_MBUF_SCATTER_GATHER;
+                       RTE_CRYPTODEV_FF_IN_PLACE_SGL;
internals = dev->data->dev_private; diff --git a/drivers/crypto/openssl/rte_openssl_pmd.c b/drivers/crypto/openssl/rte_openssl_pmd.c
index 972e2adfe..94b6e2de9 100644
--- a/drivers/crypto/openssl/rte_openssl_pmd.c
+++ b/drivers/crypto/openssl/rte_openssl_pmd.c
@@ -1660,7 +1660,7 @@ cryptodev_openssl_create(const char *name,
        dev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO |
                        RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING |
                        RTE_CRYPTODEV_FF_CPU_AESNI |
-                       RTE_CRYPTODEV_FF_MBUF_SCATTER_GATHER;
+                       RTE_CRYPTODEV_FF_OUT_OF_PLACE_SGL_IN_FB_OUT;

RTE_CRYPTODEV_FF_OUT_OF_PLACE_FB_IN_FB_OUT is supported here.


Reply via email to