mbox series

[v4,00/14] drivers/crypto: introduce ipsec_mb framework

Message ID 20211015143957.842499-1-ciara.power@intel.com (mailing list archive)
Headers
Series drivers/crypto: introduce ipsec_mb framework |

Message

Power, Ciara Oct. 15, 2021, 2:39 p.m. UTC
  This set of patches introduces a new framework, making all common code of
SW crypto PMD implementations built on top of intel-ipsec-mb library
sharable. This helps to reduce future effort on the code maintenance and
future updates. It also moves all SW PMD implementation specific details
into single files located in the crypto/ipsec_mb folder.
A CHACHA20_POLY1305 SW PMD is added based on this framework.

Multi-process support for the PMDs is added for intel-ipsec-mb v1.1.
The minimum intel-ipsec-mb version required is bumped to 1.0.

ZUC-256 support is added for the aesni_mb PMD, with relevant tests.

v4:
  - Renamed general files and functions to remove "_pmd_" and "rte_".
  - Fixed copyright years in many files.
  - Fixed some documentation errors.
  - Split sections of the PMD files into header files.
  - Fixed other small comments left on v3.
  - Dropped release note patch from v3, added release notes incrementally
    throughout the set.
  - Updated CHACHA20_POLY1305 AAD max size for AESNI_MB.
  - Removed unnecessary enqueue count variables and calls to enqueue when
    processing ops for SNOW3G, ZUC, KASUMI.
  - Removed some unnecessary includes for security headers in PMD files.
  - Added call to release queue pairs in the remove function.
  - Split CHACHA20_POLY1305 patch into two, (1) PMD addition and
    (2) test app changes.
  - Added 4 new patches for ZUC-256 support and tests, based on a
    patch previously sent to the mailing list:
    https://patchwork.dpdk.org/project/dpdk/patch/20210910164516.807659-1-pablo.de.lara.guarch@intel.com/

v3:
  - Added multiprocess support for v1.1 of intel-ipsec-mb.
  - Fixed some formatting and comments.
  - Added detail to some commit logs.
  - Updated macros to use intel-ipsec-mb v1.0 supported macros.
  - Added use of intel-ipsec-mb API to auto initialise IMB_MGR
    based on CPU vector support.

v2:
  - Added qp NULL check in get stats function.
  - Updated maintainers file.
  - Replaced use of strlcpy with rte_strlcpy.
  - Fixed enum for GCM key length.
  - Updated release notes.
  - Added Chacha20_poly1305 PMD documentation.

Ciara Power (1):
  crypto/ipsec_mb: add multiprocess support

Fan Zhang (1):
  drivers/crypto: introduce IPsec-mb framework

Kai Ji (2):
  crypto/ipsec_mb: add chacha20-poly1305 PMD to framework
  test/crypto: add test for chacha20_poly1305 PMD

Pablo de Lara (4):
  crypto/ipsec_mb: support ZUC-256 for aesni_mb
  test/crypto: check cipher parameters
  test/crypto: check auth parameters
  test/crypto: add ZUC-256 vectors

Piotr Bronowski (6):
  drivers/crypto: move aesni-mb PMD to IPsec-mb framework
  drivers/crypto: move aesni-gcm PMD to IPsec-mb framework
  drivers/crypto: move kasumi PMD to IPsec-mb framework
  drivers/crypto: move snow3g PMD to IPsec-mb framework
  crypto/ipsec_mb: add snow3g digest appended ops support
  drivers/crypto: move zuc PMD to IPsec-mb framework

 MAINTAINERS                                   |   41 +-
 app/test/test_cryptodev.c                     |  170 ++-
 app/test/test_cryptodev.h                     |    1 +
 app/test/test_cryptodev_aead_test_vectors.h   |  114 ++
 app/test/test_cryptodev_zuc_test_vectors.h    |  286 ++++
 doc/guides/cryptodevs/aesni_gcm.rst           |    4 +-
 doc/guides/cryptodevs/aesni_mb.rst            |    5 +-
 doc/guides/cryptodevs/chacha20_poly1305.rst   |   99 ++
 .../cryptodevs/features/chacha20_poly1305.ini |   35 +
 doc/guides/cryptodevs/features/snow3g.ini     |    1 +
 doc/guides/cryptodevs/index.rst               |    1 +
 doc/guides/cryptodevs/kasumi.rst              |    3 +-
 doc/guides/cryptodevs/snow3g.rst              |    3 +-
 doc/guides/cryptodevs/zuc.rst                 |    3 +-
 doc/guides/rel_notes/release_21_11.rst        |   31 +
 drivers/crypto/aesni_gcm/aesni_gcm_ops.h      |  104 --
 drivers/crypto/aesni_gcm/aesni_gcm_pmd.c      |  984 -------------
 drivers/crypto/aesni_gcm/aesni_gcm_pmd_ops.c  |  333 -----
 .../crypto/aesni_gcm/aesni_gcm_pmd_private.h  |  123 --
 drivers/crypto/aesni_gcm/meson.build          |   24 -
 .../crypto/aesni_mb/aesni_mb_pmd_private.h    |  337 -----
 drivers/crypto/aesni_mb/meson.build           |   25 -
 drivers/crypto/aesni_mb/version.map           |    3 -
 drivers/crypto/ipsec_mb/ipsec_mb_ops.c        |  370 +++++
 drivers/crypto/ipsec_mb/ipsec_mb_private.c    |  176 +++
 drivers/crypto/ipsec_mb/ipsec_mb_private.h    |  455 ++++++
 drivers/crypto/ipsec_mb/meson.build           |   33 +
 drivers/crypto/ipsec_mb/pmd_aesni_gcm.c       |  837 +++++++++++
 drivers/crypto/ipsec_mb/pmd_aesni_gcm_priv.h  |  169 +++
 .../pmd_aesni_mb.c}                           | 1235 +++++++----------
 .../pmd_aesni_mb_priv.h}                      |  681 ++++-----
 drivers/crypto/ipsec_mb/pmd_chacha_poly.c     |  408 ++++++
 .../crypto/ipsec_mb/pmd_chacha_poly_priv.h    |   74 +
 drivers/crypto/ipsec_mb/pmd_kasumi.c          |  476 +++++++
 drivers/crypto/ipsec_mb/pmd_kasumi_priv.h     |   81 ++
 .../pmd_snow3g.c}                             |  543 ++++----
 drivers/crypto/ipsec_mb/pmd_snow3g_priv.h     |   85 ++
 drivers/crypto/ipsec_mb/pmd_zuc.c             |  403 ++++++
 drivers/crypto/ipsec_mb/pmd_zuc_priv.h        |   85 ++
 .../{aesni_gcm => ipsec_mb}/version.map       |    0
 drivers/crypto/kasumi/kasumi_pmd_private.h    |   81 --
 drivers/crypto/kasumi/meson.build             |   24 -
 drivers/crypto/kasumi/rte_kasumi_pmd.c        |  642 ---------
 drivers/crypto/kasumi/rte_kasumi_pmd_ops.c    |  316 -----
 drivers/crypto/kasumi/version.map             |    3 -
 drivers/crypto/meson.build                    |    6 +-
 drivers/crypto/snow3g/meson.build             |   24 -
 drivers/crypto/snow3g/rte_snow3g_pmd_ops.c    |  323 -----
 drivers/crypto/snow3g/snow3g_pmd_private.h    |   84 --
 drivers/crypto/snow3g/version.map             |    3 -
 drivers/crypto/zuc/meson.build                |   24 -
 drivers/crypto/zuc/rte_zuc_pmd.c              |  583 --------
 drivers/crypto/zuc/rte_zuc_pmd_ops.c          |  322 -----
 drivers/crypto/zuc/version.map                |    3 -
 drivers/crypto/zuc/zuc_pmd_private.h          |   83 --
 55 files changed, 5412 insertions(+), 5950 deletions(-)
 create mode 100644 doc/guides/cryptodevs/chacha20_poly1305.rst
 create mode 100644 doc/guides/cryptodevs/features/chacha20_poly1305.ini
 delete mode 100644 drivers/crypto/aesni_gcm/aesni_gcm_ops.h
 delete mode 100644 drivers/crypto/aesni_gcm/aesni_gcm_pmd.c
 delete mode 100644 drivers/crypto/aesni_gcm/aesni_gcm_pmd_ops.c
 delete mode 100644 drivers/crypto/aesni_gcm/aesni_gcm_pmd_private.h
 delete mode 100644 drivers/crypto/aesni_gcm/meson.build
 delete mode 100644 drivers/crypto/aesni_mb/aesni_mb_pmd_private.h
 delete mode 100644 drivers/crypto/aesni_mb/meson.build
 delete mode 100644 drivers/crypto/aesni_mb/version.map
 create mode 100644 drivers/crypto/ipsec_mb/ipsec_mb_ops.c
 create mode 100644 drivers/crypto/ipsec_mb/ipsec_mb_private.c
 create mode 100644 drivers/crypto/ipsec_mb/ipsec_mb_private.h
 create mode 100644 drivers/crypto/ipsec_mb/meson.build
 create mode 100644 drivers/crypto/ipsec_mb/pmd_aesni_gcm.c
 create mode 100644 drivers/crypto/ipsec_mb/pmd_aesni_gcm_priv.h
 rename drivers/crypto/{aesni_mb/rte_aesni_mb_pmd.c => ipsec_mb/pmd_aesni_mb.c} (60%)
 rename drivers/crypto/{aesni_mb/rte_aesni_mb_pmd_ops.c => ipsec_mb/pmd_aesni_mb_priv.h} (55%)
 create mode 100644 drivers/crypto/ipsec_mb/pmd_chacha_poly.c
 create mode 100644 drivers/crypto/ipsec_mb/pmd_chacha_poly_priv.h
 create mode 100644 drivers/crypto/ipsec_mb/pmd_kasumi.c
 create mode 100644 drivers/crypto/ipsec_mb/pmd_kasumi_priv.h
 rename drivers/crypto/{snow3g/rte_snow3g_pmd.c => ipsec_mb/pmd_snow3g.c} (51%)
 create mode 100644 drivers/crypto/ipsec_mb/pmd_snow3g_priv.h
 create mode 100644 drivers/crypto/ipsec_mb/pmd_zuc.c
 create mode 100644 drivers/crypto/ipsec_mb/pmd_zuc_priv.h
 rename drivers/crypto/{aesni_gcm => ipsec_mb}/version.map (100%)
 delete mode 100644 drivers/crypto/kasumi/kasumi_pmd_private.h
 delete mode 100644 drivers/crypto/kasumi/meson.build
 delete mode 100644 drivers/crypto/kasumi/rte_kasumi_pmd.c
 delete mode 100644 drivers/crypto/kasumi/rte_kasumi_pmd_ops.c
 delete mode 100644 drivers/crypto/kasumi/version.map
 delete mode 100644 drivers/crypto/snow3g/meson.build
 delete mode 100644 drivers/crypto/snow3g/rte_snow3g_pmd_ops.c
 delete mode 100644 drivers/crypto/snow3g/snow3g_pmd_private.h
 delete mode 100644 drivers/crypto/snow3g/version.map
 delete mode 100644 drivers/crypto/zuc/meson.build
 delete mode 100644 drivers/crypto/zuc/rte_zuc_pmd.c
 delete mode 100644 drivers/crypto/zuc/rte_zuc_pmd_ops.c
 delete mode 100644 drivers/crypto/zuc/version.map
 delete mode 100644 drivers/crypto/zuc/zuc_pmd_private.h
  

Comments

Akhil Goyal Oct. 18, 2021, 3:21 p.m. UTC | #1
> This set of patches introduces a new framework, making all common code of
> SW crypto PMD implementations built on top of intel-ipsec-mb library
> sharable. This helps to reduce future effort on the code maintenance and
> future updates. It also moves all SW PMD implementation specific details
> into single files located in the crypto/ipsec_mb folder.
> A CHACHA20_POLY1305 SW PMD is added based on this framework.
> 
> Multi-process support for the PMDs is added for intel-ipsec-mb v1.1.
> The minimum intel-ipsec-mb version required is bumped to 1.0.
> 
> ZUC-256 support is added for the aesni_mb PMD, with relevant tests.
> 
> v4:

Acked-by: Akhil Goyal <gakhil@marvell.com>
Patches are rebased over TOT of next-crypto
Release notes are updated
Applied to dpdk-next-crypto



>   - Renamed general files and functions to remove "_pmd_" and "rte_".
>   - Fixed copyright years in many files.
>   - Fixed some documentation errors.
>   - Split sections of the PMD files into header files.
>   - Fixed other small comments left on v3.
>   - Dropped release note patch from v3, added release notes incrementally
>     throughout the set.
>   - Updated CHACHA20_POLY1305 AAD max size for AESNI_MB.
>   - Removed unnecessary enqueue count variables and calls to enqueue
> when
>     processing ops for SNOW3G, ZUC, KASUMI.
>   - Removed some unnecessary includes for security headers in PMD files.
>   - Added call to release queue pairs in the remove function.
>   - Split CHACHA20_POLY1305 patch into two, (1) PMD addition and
>     (2) test app changes.
>   - Added 4 new patches for ZUC-256 support and tests, based on a
>     patch previously sent to the mailing list:
>     https://urldefense.proofpoint.com/v2/url?u=https-
> 3A__patchwork.dpdk.org_project_dpdk_patch_20210910164516.807659-
> 2D1-2Dpablo.de.lara.guarch-
> 40intel.com_&d=DwIDaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=DnL7Si2wl_PRwp
> Z9TWey3eu68gBzn7DkPwuqhd6WNyo&m=uArCd3xuliTs88F0w-
> M_dUmWE501xEWXaFNHXmMFeW4&s=H01RcsI-I-
> lYeayHNmBHCbD0qp5aV2RZlGBVkOhZZu4&e=
> 
> v3:
>   - Added multiprocess support for v1.1 of intel-ipsec-mb.
>   - Fixed some formatting and comments.
>   - Added detail to some commit logs.
>   - Updated macros to use intel-ipsec-mb v1.0 supported macros.
>   - Added use of intel-ipsec-mb API to auto initialise IMB_MGR
>     based on CPU vector support.
> 
> v2:
>   - Added qp NULL check in get stats function.
>   - Updated maintainers file.
>   - Replaced use of strlcpy with rte_strlcpy.
>   - Fixed enum for GCM key length.
>   - Updated release notes.
>   - Added Chacha20_poly1305 PMD documentation.
> 
> Ciara Power (1):
>   crypto/ipsec_mb: add multiprocess support
> 
> Fan Zhang (1):
>   drivers/crypto: introduce IPsec-mb framework
> 
> Kai Ji (2):
>   crypto/ipsec_mb: add chacha20-poly1305 PMD to framework
>   test/crypto: add test for chacha20_poly1305 PMD
> 
> Pablo de Lara (4):
>   crypto/ipsec_mb: support ZUC-256 for aesni_mb
>   test/crypto: check cipher parameters
>   test/crypto: check auth parameters
>   test/crypto: add ZUC-256 vectors
> 
> Piotr Bronowski (6):
>   drivers/crypto: move aesni-mb PMD to IPsec-mb framework
>   drivers/crypto: move aesni-gcm PMD to IPsec-mb framework
>   drivers/crypto: move kasumi PMD to IPsec-mb framework
>   drivers/crypto: move snow3g PMD to IPsec-mb framework
>   crypto/ipsec_mb: add snow3g digest appended ops support
>   drivers/crypto: move zuc PMD to IPsec-mb framework
> 
>  MAINTAINERS                                   |   41 +-
>  app/test/test_cryptodev.c                     |  170 ++-
>  app/test/test_cryptodev.h                     |    1 +
>  app/test/test_cryptodev_aead_test_vectors.h   |  114 ++
>  app/test/test_cryptodev_zuc_test_vectors.h    |  286 ++++
>  doc/guides/cryptodevs/aesni_gcm.rst           |    4 +-
>  doc/guides/cryptodevs/aesni_mb.rst            |    5 +-
>  doc/guides/cryptodevs/chacha20_poly1305.rst   |   99 ++
>  .../cryptodevs/features/chacha20_poly1305.ini |   35 +
>  doc/guides/cryptodevs/features/snow3g.ini     |    1 +
>  doc/guides/cryptodevs/index.rst               |    1 +
>  doc/guides/cryptodevs/kasumi.rst              |    3 +-
>  doc/guides/cryptodevs/snow3g.rst              |    3 +-
>  doc/guides/cryptodevs/zuc.rst                 |    3 +-
>  doc/guides/rel_notes/release_21_11.rst        |   31 +
>  drivers/crypto/aesni_gcm/aesni_gcm_ops.h      |  104 --
>  drivers/crypto/aesni_gcm/aesni_gcm_pmd.c      |  984 -------------
>  drivers/crypto/aesni_gcm/aesni_gcm_pmd_ops.c  |  333 -----
>  .../crypto/aesni_gcm/aesni_gcm_pmd_private.h  |  123 --
>  drivers/crypto/aesni_gcm/meson.build          |   24 -
>  .../crypto/aesni_mb/aesni_mb_pmd_private.h    |  337 -----
>  drivers/crypto/aesni_mb/meson.build           |   25 -
>  drivers/crypto/aesni_mb/version.map           |    3 -
>  drivers/crypto/ipsec_mb/ipsec_mb_ops.c        |  370 +++++
>  drivers/crypto/ipsec_mb/ipsec_mb_private.c    |  176 +++
>  drivers/crypto/ipsec_mb/ipsec_mb_private.h    |  455 ++++++
>  drivers/crypto/ipsec_mb/meson.build           |   33 +
>  drivers/crypto/ipsec_mb/pmd_aesni_gcm.c       |  837 +++++++++++
>  drivers/crypto/ipsec_mb/pmd_aesni_gcm_priv.h  |  169 +++
>  .../pmd_aesni_mb.c}                           | 1235 +++++++----------
>  .../pmd_aesni_mb_priv.h}                      |  681 ++++-----
>  drivers/crypto/ipsec_mb/pmd_chacha_poly.c     |  408 ++++++
>  .../crypto/ipsec_mb/pmd_chacha_poly_priv.h    |   74 +
>  drivers/crypto/ipsec_mb/pmd_kasumi.c          |  476 +++++++
>  drivers/crypto/ipsec_mb/pmd_kasumi_priv.h     |   81 ++
>  .../pmd_snow3g.c}                             |  543 ++++----
>  drivers/crypto/ipsec_mb/pmd_snow3g_priv.h     |   85 ++
>  drivers/crypto/ipsec_mb/pmd_zuc.c             |  403 ++++++
>  drivers/crypto/ipsec_mb/pmd_zuc_priv.h        |   85 ++
>  .../{aesni_gcm => ipsec_mb}/version.map       |    0
>  drivers/crypto/kasumi/kasumi_pmd_private.h    |   81 --
>  drivers/crypto/kasumi/meson.build             |   24 -
>  drivers/crypto/kasumi/rte_kasumi_pmd.c        |  642 ---------
>  drivers/crypto/kasumi/rte_kasumi_pmd_ops.c    |  316 -----
>  drivers/crypto/kasumi/version.map             |    3 -
>  drivers/crypto/meson.build                    |    6 +-
>  drivers/crypto/snow3g/meson.build             |   24 -
>  drivers/crypto/snow3g/rte_snow3g_pmd_ops.c    |  323 -----
>  drivers/crypto/snow3g/snow3g_pmd_private.h    |   84 --
>  drivers/crypto/snow3g/version.map             |    3 -
>  drivers/crypto/zuc/meson.build                |   24 -
>  drivers/crypto/zuc/rte_zuc_pmd.c              |  583 --------
>  drivers/crypto/zuc/rte_zuc_pmd_ops.c          |  322 -----
>  drivers/crypto/zuc/version.map                |    3 -
>  drivers/crypto/zuc/zuc_pmd_private.h          |   83 --
>  55 files changed, 5412 insertions(+), 5950 deletions(-)
>  create mode 100644 doc/guides/cryptodevs/chacha20_poly1305.rst
>  create mode 100644
> doc/guides/cryptodevs/features/chacha20_poly1305.ini
>  delete mode 100644 drivers/crypto/aesni_gcm/aesni_gcm_ops.h
>  delete mode 100644 drivers/crypto/aesni_gcm/aesni_gcm_pmd.c
>  delete mode 100644 drivers/crypto/aesni_gcm/aesni_gcm_pmd_ops.c
>  delete mode 100644 drivers/crypto/aesni_gcm/aesni_gcm_pmd_private.h
>  delete mode 100644 drivers/crypto/aesni_gcm/meson.build
>  delete mode 100644 drivers/crypto/aesni_mb/aesni_mb_pmd_private.h
>  delete mode 100644 drivers/crypto/aesni_mb/meson.build
>  delete mode 100644 drivers/crypto/aesni_mb/version.map
>  create mode 100644 drivers/crypto/ipsec_mb/ipsec_mb_ops.c
>  create mode 100644 drivers/crypto/ipsec_mb/ipsec_mb_private.c
>  create mode 100644 drivers/crypto/ipsec_mb/ipsec_mb_private.h
>  create mode 100644 drivers/crypto/ipsec_mb/meson.build
>  create mode 100644 drivers/crypto/ipsec_mb/pmd_aesni_gcm.c
>  create mode 100644 drivers/crypto/ipsec_mb/pmd_aesni_gcm_priv.h
>  rename drivers/crypto/{aesni_mb/rte_aesni_mb_pmd.c =>
> ipsec_mb/pmd_aesni_mb.c} (60%)
>  rename drivers/crypto/{aesni_mb/rte_aesni_mb_pmd_ops.c =>
> ipsec_mb/pmd_aesni_mb_priv.h} (55%)
>  create mode 100644 drivers/crypto/ipsec_mb/pmd_chacha_poly.c
>  create mode 100644 drivers/crypto/ipsec_mb/pmd_chacha_poly_priv.h
>  create mode 100644 drivers/crypto/ipsec_mb/pmd_kasumi.c
>  create mode 100644 drivers/crypto/ipsec_mb/pmd_kasumi_priv.h
>  rename drivers/crypto/{snow3g/rte_snow3g_pmd.c =>
> ipsec_mb/pmd_snow3g.c} (51%)
>  create mode 100644 drivers/crypto/ipsec_mb/pmd_snow3g_priv.h
>  create mode 100644 drivers/crypto/ipsec_mb/pmd_zuc.c
>  create mode 100644 drivers/crypto/ipsec_mb/pmd_zuc_priv.h
>  rename drivers/crypto/{aesni_gcm => ipsec_mb}/version.map (100%)
>  delete mode 100644 drivers/crypto/kasumi/kasumi_pmd_private.h
>  delete mode 100644 drivers/crypto/kasumi/meson.build
>  delete mode 100644 drivers/crypto/kasumi/rte_kasumi_pmd.c
>  delete mode 100644 drivers/crypto/kasumi/rte_kasumi_pmd_ops.c
>  delete mode 100644 drivers/crypto/kasumi/version.map
>  delete mode 100644 drivers/crypto/snow3g/meson.build
>  delete mode 100644 drivers/crypto/snow3g/rte_snow3g_pmd_ops.c
>  delete mode 100644 drivers/crypto/snow3g/snow3g_pmd_private.h
>  delete mode 100644 drivers/crypto/snow3g/version.map
>  delete mode 100644 drivers/crypto/zuc/meson.build
>  delete mode 100644 drivers/crypto/zuc/rte_zuc_pmd.c
>  delete mode 100644 drivers/crypto/zuc/rte_zuc_pmd_ops.c
>  delete mode 100644 drivers/crypto/zuc/version.map
>  delete mode 100644 drivers/crypto/zuc/zuc_pmd_private.h
> 
> --
> 2.25.1
  
Thomas Monjalon Oct. 19, 2021, 11:09 p.m. UTC | #2
18/10/2021 17:21, Akhil Goyal:
> > This set of patches introduces a new framework, making all common code of
> > SW crypto PMD implementations built on top of intel-ipsec-mb library
> > sharable. This helps to reduce future effort on the code maintenance and
> > future updates. It also moves all SW PMD implementation specific details
> > into single files located in the crypto/ipsec_mb folder.
> > A CHACHA20_POLY1305 SW PMD is added based on this framework.
> > 
> > Multi-process support for the PMDs is added for intel-ipsec-mb v1.1.
> > The minimum intel-ipsec-mb version required is bumped to 1.0.
> > 
> > ZUC-256 support is added for the aesni_mb PMD, with relevant tests.
> > 
> > v4:
> 
> Acked-by: Akhil Goyal <gakhil@marvell.com>
> Patches are rebased over TOT of next-crypto
> Release notes are updated
> Applied to dpdk-next-crypto

I think compilation has not been tested.
You need to update intel-ipsec-mb to v1.0.
Result:

drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: error: ‘hash_keys’ may be used uninitialized [-Werror=maybe-uninitialized]/aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of macro ‘IMB_ZUC_EIA3_N_BUFFER’
 1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag), (_num)))
      |           ^~~~
drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: note: by argument 1 of type ‘const void * const*’ to ‘void(const void * const*, const void * const*, const void * const*, const uint32_t *, uint32_t **, const uint32_t)’ {aka ‘void(const void * const*, const void * const*, const void * const*, const unsigned int *, unsigned int **, const unsigned int)’}
/aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of macro ‘IMB_ZUC_EIA3_N_BUFFER’
 1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag), (_num)))
      |           ^~~~
drivers/crypto/ipsec_mb/pmd_zuc.c:145:21: note: ‘hash_keys’ declared here
  145 |         const void *hash_keys[ZUC_MAX_BURST];
      |                     ^~~~~~~~~
In file included from ../../dpdk/drivers/crypto/ipsec_mb/ipsec_mb_private.h:8,
                 from ../../dpdk/drivers/crypto/ipsec_mb/pmd_zuc_priv.h:8,
                 from ../../dpdk/drivers/crypto/ipsec_mb/pmd_zuc.c:5:
drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: error: ‘iv’ may be used uninitialized [-Werror=maybe-uninitialized]
  176 |         IMB_ZUC_EIA3_N_BUFFER(qp->mb_mgr, (const void **)hash_keys,
/aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of macro ‘IMB_ZUC_EIA3_N_BUFFER’
 1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag), (_num)))
      |           ^~~~
drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: note: by argument 2 of type ‘const void * const*’ to ‘void(const void * const*, const void * const*, const void * const*, const uint32_t *, uint32_t **, const uint32_t)’ {aka ‘void(const void * const*, const void * const*, const void * const*, const unsigned int *, unsigned int **, const unsigned int)’}
/aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of macro ‘IMB_ZUC_EIA3_N_BUFFER’
 1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag), (_num)))
      |           ^~~~
drivers/crypto/ipsec_mb/pmd_zuc.c:144:18: note: ‘iv’ declared here
  144 |         uint8_t *iv[ZUC_MAX_BURST];
      |                  ^~
In file included from ../../dpdk/drivers/crypto/ipsec_mb/ipsec_mb_private.h:8,
                 from ../../dpdk/drivers/crypto/ipsec_mb/pmd_zuc_priv.h:8,
                 from ../../dpdk/drivers/crypto/ipsec_mb/pmd_zuc.c:5:
drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: error: ‘src’ may be used uninitialized [-Werror=maybe-uninitialized]
  176 |         IMB_ZUC_EIA3_N_BUFFER(qp->mb_mgr, (const void **)hash_keys,
/aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of macro ‘IMB_ZUC_EIA3_N_BUFFER’
 1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag), (_num)))
      |           ^~~~
../../dpdk/d(const void * const*, const void * const*, const void * const*, const uint32_t *, uint32_t **, const uint32_t)’ {aka ‘void(const void * const*, const void * const*, const void * const*, const unsigned int *, unsigned int **, const unsigned int)’}
  176 |         IMB_ZUC_EIA3_N_BUFFER(qp->mb_mgr, (const void **)hash_keys,
/aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of macro ‘IMB_ZUC_EIA3_N_BUFFER’
 1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag), (_num)))
      |           ^~~~
drivers/crypto/ipsec_mb/pmd_zuc.c:141:18: note: ‘src’ declared here
  141 |         uint8_t *src[ZUC_MAX_BURST];
      |                  ^~~
In file included from ../../dpdk/drivers/crypto/ipsec_mb/ipsec_mb_private.h:8,
                 from ../../dpdk/drivers/crypto/ipsec_mb/pmd_zuc_priv.h:8,
                 from ../../dpdk/drivers/crypto/ipsec_mb/pmd_zuc.c:5:
drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: error: ‘length_in_bits’ may be used uninitialized [-Werror=maybe-uninitialized]
  176 |         IMB_ZUC_EIA3_N_BUFFER(qp->mb_mgr, (const void **)hash_keys,
/aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of macro ‘IMB_ZUC_EIA3_N_BUFFER’
 1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag), (_num)))
      |           ^~~~
drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: note: by argument 4 of type ‘const uint32_t *’ {aka ‘const unsigned int *’} to ‘void(const void * const*, const void * const*, const void * const*, const uint32_t *, uint32_t **, const uint32_t)’ {aka ‘void(const void * const*, const void * const*, const void * const*, const unsigned int *, unsigned int **, const unsigned int)’}
  176 |         IMB_ZUC_EIA3_N_BUFFER(qp->mb_mgr, (const void **)hash_keys,
/aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of macro ‘IMB_ZUC_EIA3_N_BUFFER’
 1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag), (_num)))
      |           ^~~~
drivers/crypto/ipsec_mb/pmd_zuc.c:143:18: note: ‘length_in_bits’ declared here
  143 |         uint32_t length_in_bits[ZUC_MAX_BURST];
      |                  ^~~~~~~~~~~~~~
cc1: all warnings being treated as errors

I think I will just drop all these patches from 21.11-rc1.

Not sure I will accept any new revision, given how I am annoyed recently
by such bad work in Intel.
  
Akhil Goyal Oct. 20, 2021, 4:23 a.m. UTC | #3
> 18/10/2021 17:21, Akhil Goyal:
> > > This set of patches introduces a new framework, making all common
> code of
> > > SW crypto PMD implementations built on top of intel-ipsec-mb library
> > > sharable. This helps to reduce future effort on the code maintenance and
> > > future updates. It also moves all SW PMD implementation specific details
> > > into single files located in the crypto/ipsec_mb folder.
> > > A CHACHA20_POLY1305 SW PMD is added based on this framework.
> > >
> > > Multi-process support for the PMDs is added for intel-ipsec-mb v1.1.
> > > The minimum intel-ipsec-mb version required is bumped to 1.0.
> > >
> > > ZUC-256 support is added for the aesni_mb PMD, with relevant tests.
> > >
> > > v4:
> >
> > Acked-by: Akhil Goyal <gakhil@marvell.com>
> > Patches are rebased over TOT of next-crypto
> > Release notes are updated
> > Applied to dpdk-next-crypto
> 
> I think compilation has not been tested.

I am not sure why this is failing at your end,
On my machine, it is getting compiled with intel-ipsec-mb v1.0.
I am double checking compilation for all the individual patches as well.
Will inform you once it is completed.
On TOT of next crypto, I did a quick test touched the pmd_zuc.c and it is getting compiled.
cavium@cavium-DT13:~/up/dpdk-next-crypto$ touch drivers/crypto/ipsec_mb/pmd_zuc.c
cavium@cavium-DT13:~/up/dpdk-next-crypto$ ./devtools/test-meson-builds.sh
ninja: Entering directory `./build-gcc-static'
[24/24] Linking target app/test/dpdk-test.
ninja: Entering directory `./build-gcc-shared'
[8/8] Linking target drivers/librte_crypto_ipsec_mb.so.22.0.
ninja: Entering directory `./build-clang-static'
[24/24] Linking target app/test/dpdk-test.
ninja: Entering directory `./build-clang-shared'
[8/8] Linking target drivers/librte_crypto_ipsec_mb.so.22.0.
ninja: Entering directory `./build-x86-generic'
[9/9] Linking target buildtools/chkincs/chkincs.
ninja: Entering directory `./build-x86-mingw'
ninja: no work to do.

> You need to update intel-ipsec-mb to v1.0.
> Result:
> 
> drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: error: ‘hash_keys’ may be used
> uninitialized [-Werror=maybe-uninitialized]/aesni/intel-ipsec-mb/lib/intel-
> ipsec-mb.h:1444:11: note: in definition of macro ‘IMB_ZUC_EIA3_N_BUFFER’
>  1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag),
> (_num)))
>       |           ^~~~
> drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: note: by argument 1 of type
> ‘const void * const*’ to ‘void(const void * const*, const void * const*, const
> void * const*, const uint32_t *, uint32_t **, const uint32_t)’ {aka ‘void(const
> void * const*, const void * const*, const void * const*, const unsigned int *,
> unsigned int **, const unsigned int)’}
> /aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of
> macro ‘IMB_ZUC_EIA3_N_BUFFER’
>  1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag),
> (_num)))
>       |           ^~~~
> drivers/crypto/ipsec_mb/pmd_zuc.c:145:21: note: ‘hash_keys’ declared here
>   145 |         const void *hash_keys[ZUC_MAX_BURST];
>       |                     ^~~~~~~~~
> In file included from
> ../../dpdk/drivers/crypto/ipsec_mb/ipsec_mb_private.h:8,
>                  from ../../dpdk/drivers/crypto/ipsec_mb/pmd_zuc_priv.h:8,
>                  from ../../dpdk/drivers/crypto/ipsec_mb/pmd_zuc.c:5:
> drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: error: ‘iv’ may be used
> uninitialized [-Werror=maybe-uninitialized]
>   176 |         IMB_ZUC_EIA3_N_BUFFER(qp->mb_mgr, (const void
> **)hash_keys,
> /aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of
> macro ‘IMB_ZUC_EIA3_N_BUFFER’
>  1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag),
> (_num)))
>       |           ^~~~
> drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: note: by argument 2 of type
> ‘const void * const*’ to ‘void(const void * const*, const void * const*, const
> void * const*, const uint32_t *, uint32_t **, const uint32_t)’ {aka ‘void(const
> void * const*, const void * const*, const void * const*, const unsigned int *,
> unsigned int **, const unsigned int)’}
> /aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of
> macro ‘IMB_ZUC_EIA3_N_BUFFER’
>  1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag),
> (_num)))
>       |           ^~~~
> drivers/crypto/ipsec_mb/pmd_zuc.c:144:18: note: ‘iv’ declared here
>   144 |         uint8_t *iv[ZUC_MAX_BURST];
>       |                  ^~
> In file included from
> ../../dpdk/drivers/crypto/ipsec_mb/ipsec_mb_private.h:8,
>                  from ../../dpdk/drivers/crypto/ipsec_mb/pmd_zuc_priv.h:8,
>                  from ../../dpdk/drivers/crypto/ipsec_mb/pmd_zuc.c:5:
> drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: error: ‘src’ may be used
> uninitialized [-Werror=maybe-uninitialized]
>   176 |         IMB_ZUC_EIA3_N_BUFFER(qp->mb_mgr, (const void
> **)hash_keys,
> /aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of
> macro ‘IMB_ZUC_EIA3_N_BUFFER’
>  1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag),
> (_num)))
>       |           ^~~~
> ../../dpdk/d(const void * const*, const void * const*, const void * const*,
> const uint32_t *, uint32_t **, const uint32_t)’ {aka ‘void(const void * const*,
> const void * const*, const void * const*, const unsigned int *, unsigned int
> **, const unsigned int)’}
>   176 |         IMB_ZUC_EIA3_N_BUFFER(qp->mb_mgr, (const void
> **)hash_keys,
> /aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of
> macro ‘IMB_ZUC_EIA3_N_BUFFER’
>  1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag),
> (_num)))
>       |           ^~~~
> drivers/crypto/ipsec_mb/pmd_zuc.c:141:18: note: ‘src’ declared here
>   141 |         uint8_t *src[ZUC_MAX_BURST];
>       |                  ^~~
> In file included from
> ../../dpdk/drivers/crypto/ipsec_mb/ipsec_mb_private.h:8,
>                  from ../../dpdk/drivers/crypto/ipsec_mb/pmd_zuc_priv.h:8,
>                  from ../../dpdk/drivers/crypto/ipsec_mb/pmd_zuc.c:5:
> drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: error: ‘length_in_bits’ may be
> used uninitialized [-Werror=maybe-uninitialized]
>   176 |         IMB_ZUC_EIA3_N_BUFFER(qp->mb_mgr, (const void
> **)hash_keys,
> /aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of
> macro ‘IMB_ZUC_EIA3_N_BUFFER’
>  1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag),
> (_num)))
>       |           ^~~~
> drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: note: by argument 4 of type
> ‘const uint32_t *’ {aka ‘const unsigned int *’} to ‘void(const void * const*,
> const void * const*, const void * const*, const uint32_t *, uint32_t **, const
> uint32_t)’ {aka ‘void(const void * const*, const void * const*, const void *
> const*, const unsigned int *, unsigned int **, const unsigned int)’}
>   176 |         IMB_ZUC_EIA3_N_BUFFER(qp->mb_mgr, (const void
> **)hash_keys,
> /aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of
> macro ‘IMB_ZUC_EIA3_N_BUFFER’
>  1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag),
> (_num)))
>       |           ^~~~
> drivers/crypto/ipsec_mb/pmd_zuc.c:143:18: note: ‘length_in_bits’ declared
> here
>   143 |         uint32_t length_in_bits[ZUC_MAX_BURST];
>       |                  ^~~~~~~~~~~~~~
> cc1: all warnings being treated as errors
> 
> I think I will just drop all these patches from 21.11-rc1.
> 
> Not sure I will accept any new revision, given how I am annoyed recently
> by such bad work in Intel.
>
  
Akhil Goyal Oct. 20, 2021, 8:31 a.m. UTC | #4
> > > Acked-by: Akhil Goyal <gakhil@marvell.com>
> > > Patches are rebased over TOT of next-crypto
> > > Release notes are updated
> > > Applied to dpdk-next-crypto
> >
> > I think compilation has not been tested.
> 
> I am not sure why this is failing at your end,
> On my machine, it is getting compiled with intel-ipsec-mb v1.0.
> I am double checking compilation for all the individual patches as well.
> Will inform you once it is completed.
> On TOT of next crypto, I did a quick test touched the pmd_zuc.c and it is
> getting compiled.
> cavium@cavium-DT13:~/up/dpdk-next-crypto$ touch
> drivers/crypto/ipsec_mb/pmd_zuc.c
> cavium@cavium-DT13:~/up/dpdk-next-crypto$ ./devtools/test-meson-
> builds.sh
> ninja: Entering directory `./build-gcc-static'
> [24/24] Linking target app/test/dpdk-test.
> ninja: Entering directory `./build-gcc-shared'
> [8/8] Linking target drivers/librte_crypto_ipsec_mb.so.22.0.
> ninja: Entering directory `./build-clang-static'
> [24/24] Linking target app/test/dpdk-test.
> ninja: Entering directory `./build-clang-shared'
> [8/8] Linking target drivers/librte_crypto_ipsec_mb.so.22.0.
> ninja: Entering directory `./build-x86-generic'
> [9/9] Linking target buildtools/chkincs/chkincs.
> ninja: Entering directory `./build-x86-mingw'
> ninja: no work to do.
> 
> > You need to update intel-ipsec-mb to v1.0.
I have tried compilation of individual patches as well. It works fine for me.
I see that the ipsec_mb is not in content skipped. So my intel-ipsec-mb version is 1.0.
Message:
=================
Content Skipped
=================
libs:
drivers:
        common/mvep:    missing dependency, "libmusdk"
        net/af_xdp:     missing dependency, "libbpf"
        net/ipn3ke:     missing dependency, "libfdt"
        net/mvneta:     missing dependency, "libmusdk"
        net/mvpp2:      missing dependency, "libmusdk"
        net/nfb:        missing dependency, "libnfb"
        net/pcap:       missing dependency, "libpcap"
        net/szedata2:   missing dependency, "libsze2"
        raw/ifpga:      missing dependency, "libfdt"
        crypto/armv8:   missing dependency, "libAArch64crypto"
        crypto/mvsam:   missing dependency, "libmusdk"

I did a rebase -i on the commit below these patches and ran test-meson-build.sh
git rebase -i 672c47fc35 --exec=./devtools/test-meson-builds.sh

The compilation is perfect for me.


> > Result:
> >
> > drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: error: ‘hash_keys’ may be
> used
> > uninitialized [-Werror=maybe-uninitialized]/aesni/intel-ipsec-mb/lib/intel-
> > ipsec-mb.h:1444:11: note: in definition of macro
> ‘IMB_ZUC_EIA3_N_BUFFER’
> >  1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag),
> > (_num)))
> >       |           ^~~~
> > drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: note: by argument 1 of type
> > ‘const void * const*’ to ‘void(const void * const*, const void * const*, const
> > void * const*, const uint32_t *, uint32_t **, const uint32_t)’ {aka
> ‘void(const
> > void * const*, const void * const*, const void * const*, const unsigned int *,
> > unsigned int **, const unsigned int)’}
> > /aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of
> > macro ‘IMB_ZUC_EIA3_N_BUFFER’
> >  1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag),
> > (_num)))
> >       |           ^~~~
> > drivers/crypto/ipsec_mb/pmd_zuc.c:145:21: note: ‘hash_keys’ declared
> here
> >   145 |         const void *hash_keys[ZUC_MAX_BURST];
> >       |                     ^~~~~~~~~
> > In file included from
> > ../../dpdk/drivers/crypto/ipsec_mb/ipsec_mb_private.h:8,
> >                  from ../../dpdk/drivers/crypto/ipsec_mb/pmd_zuc_priv.h:8,
> >                  from ../../dpdk/drivers/crypto/ipsec_mb/pmd_zuc.c:5:
> > drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: error: ‘iv’ may be used
> > uninitialized [-Werror=maybe-uninitialized]
> >   176 |         IMB_ZUC_EIA3_N_BUFFER(qp->mb_mgr, (const void
> > **)hash_keys,
> > /aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of
> > macro ‘IMB_ZUC_EIA3_N_BUFFER’
> >  1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag),
> > (_num)))
> >       |           ^~~~
> > drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: note: by argument 2 of type
> > ‘const void * const*’ to ‘void(const void * const*, const void * const*, const
> > void * const*, const uint32_t *, uint32_t **, const uint32_t)’ {aka
> ‘void(const
> > void * const*, const void * const*, const void * const*, const unsigned int *,
> > unsigned int **, const unsigned int)’}
> > /aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of
> > macro ‘IMB_ZUC_EIA3_N_BUFFER’
> >  1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag),
> > (_num)))
> >       |           ^~~~
> > drivers/crypto/ipsec_mb/pmd_zuc.c:144:18: note: ‘iv’ declared here
> >   144 |         uint8_t *iv[ZUC_MAX_BURST];
> >       |                  ^~
> > In file included from
> > ../../dpdk/drivers/crypto/ipsec_mb/ipsec_mb_private.h:8,
> >                  from ../../dpdk/drivers/crypto/ipsec_mb/pmd_zuc_priv.h:8,
> >                  from ../../dpdk/drivers/crypto/ipsec_mb/pmd_zuc.c:5:
> > drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: error: ‘src’ may be used
> > uninitialized [-Werror=maybe-uninitialized]
> >   176 |         IMB_ZUC_EIA3_N_BUFFER(qp->mb_mgr, (const void
> > **)hash_keys,
> > /aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of
> > macro ‘IMB_ZUC_EIA3_N_BUFFER’
> >  1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag),
> > (_num)))
> >       |           ^~~~
> > ../../dpdk/d(const void * const*, const void * const*, const void * const*,
> > const uint32_t *, uint32_t **, const uint32_t)’ {aka ‘void(const void *
> const*,
> > const void * const*, const void * const*, const unsigned int *, unsigned int
> > **, const unsigned int)’}
> >   176 |         IMB_ZUC_EIA3_N_BUFFER(qp->mb_mgr, (const void
> > **)hash_keys,
> > /aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of
> > macro ‘IMB_ZUC_EIA3_N_BUFFER’
> >  1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag),
> > (_num)))
> >       |           ^~~~
> > drivers/crypto/ipsec_mb/pmd_zuc.c:141:18: note: ‘src’ declared here
> >   141 |         uint8_t *src[ZUC_MAX_BURST];
> >       |                  ^~~
> > In file included from
> > ../../dpdk/drivers/crypto/ipsec_mb/ipsec_mb_private.h:8,
> >                  from ../../dpdk/drivers/crypto/ipsec_mb/pmd_zuc_priv.h:8,
> >                  from ../../dpdk/drivers/crypto/ipsec_mb/pmd_zuc.c:5:
> > drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: error: ‘length_in_bits’ may be
> > used uninitialized [-Werror=maybe-uninitialized]
> >   176 |         IMB_ZUC_EIA3_N_BUFFER(qp->mb_mgr, (const void
> > **)hash_keys,
> > /aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of
> > macro ‘IMB_ZUC_EIA3_N_BUFFER’
> >  1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag),
> > (_num)))
> >       |           ^~~~
> > drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: note: by argument 4 of type
> > ‘const uint32_t *’ {aka ‘const unsigned int *’} to ‘void(const void * const*,
> > const void * const*, const void * const*, const uint32_t *, uint32_t **,
> const
> > uint32_t)’ {aka ‘void(const void * const*, const void * const*, const void *
> > const*, const unsigned int *, unsigned int **, const unsigned int)’}
> >   176 |         IMB_ZUC_EIA3_N_BUFFER(qp->mb_mgr, (const void
> > **)hash_keys,
> > /aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of
> > macro ‘IMB_ZUC_EIA3_N_BUFFER’
> >  1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag),
> > (_num)))
> >       |           ^~~~
> > drivers/crypto/ipsec_mb/pmd_zuc.c:143:18: note: ‘length_in_bits’ declared
> > here
> >   143 |         uint32_t length_in_bits[ZUC_MAX_BURST];
> >       |                  ^~~~~~~~~~~~~~
> > cc1: all warnings being treated as errors
> >
> > I think I will just drop all these patches from 21.11-rc1.
> >
> > Not sure I will accept any new revision, given how I am annoyed recently
> > by such bad work in Intel.
> >
  
Fan Zhang Oct. 20, 2021, 9 a.m. UTC | #5
Hi Thomas,

As stated in all cryptodev guides for the PMDs based on intel-ipsec-mb,
the minimum dependent intel-ipsec-mb lib version is bumped to 1.0.

Could you bump the library version and try again?

Regards,
Fan

> -----Original Message-----
> From: Akhil Goyal <gakhil@marvell.com>
> Sent: Wednesday, October 20, 2021 5:24 AM
> To: Thomas Monjalon <thomas@monjalon.net>; Power, Ciara
> <ciara.power@intel.com>; De Lara Guarch, Pablo
> <pablo.de.lara.guarch@intel.com>; Mcnamara, John
> <john.mcnamara@intel.com>
> Cc: dev@dpdk.org; Zhang, Roy Fan <roy.fan.zhang@intel.com>; Bronowski,
> PiotrX <piotrx.bronowski@intel.com>; mdr@ashroe.eu;
> david.marchand@redhat.com
> Subject: RE: [dpdk-dev] [EXT] [PATCH v4 00/14] drivers/crypto: introduce
> ipsec_mb framework
> 
> > 18/10/2021 17:21, Akhil Goyal:
> > > > This set of patches introduces a new framework, making all common
> > code of
> > > > SW crypto PMD implementations built on top of intel-ipsec-mb library
> > > > sharable. This helps to reduce future effort on the code maintenance
> and
> > > > future updates. It also moves all SW PMD implementation specific
> details
> > > > into single files located in the crypto/ipsec_mb folder.
> > > > A CHACHA20_POLY1305 SW PMD is added based on this framework.
> > > >
> > > > Multi-process support for the PMDs is added for intel-ipsec-mb v1.1.
> > > > The minimum intel-ipsec-mb version required is bumped to 1.0.
> > > >
> > > > ZUC-256 support is added for the aesni_mb PMD, with relevant tests.
> > > >
> > > > v4:
> > >
> > > Acked-by: Akhil Goyal <gakhil@marvell.com>
> > > Patches are rebased over TOT of next-crypto
> > > Release notes are updated
> > > Applied to dpdk-next-crypto
> >
> > I think compilation has not been tested.
> 
> I am not sure why this is failing at your end,
> On my machine, it is getting compiled with intel-ipsec-mb v1.0.
> I am double checking compilation for all the individual patches as well.
> Will inform you once it is completed.
> On TOT of next crypto, I did a quick test touched the pmd_zuc.c and it is
> getting compiled.
> cavium@cavium-DT13:~/up/dpdk-next-crypto$ touch
> drivers/crypto/ipsec_mb/pmd_zuc.c
> cavium@cavium-DT13:~/up/dpdk-next-crypto$ ./devtools/test-meson-
> builds.sh
> ninja: Entering directory `./build-gcc-static'
> [24/24] Linking target app/test/dpdk-test.
> ninja: Entering directory `./build-gcc-shared'
> [8/8] Linking target drivers/librte_crypto_ipsec_mb.so.22.0.
> ninja: Entering directory `./build-clang-static'
> [24/24] Linking target app/test/dpdk-test.
> ninja: Entering directory `./build-clang-shared'
> [8/8] Linking target drivers/librte_crypto_ipsec_mb.so.22.0.
> ninja: Entering directory `./build-x86-generic'
> [9/9] Linking target buildtools/chkincs/chkincs.
> ninja: Entering directory `./build-x86-mingw'
> ninja: no work to do.
> 
> > You need to update intel-ipsec-mb to v1.0.
> > Result:
> >
> > drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: error: ‘hash_keys’ may be
> used
> > uninitialized [-Werror=maybe-uninitialized]/aesni/intel-ipsec-mb/lib/intel-
> > ipsec-mb.h:1444:11: note: in definition of macro
> ‘IMB_ZUC_EIA3_N_BUFFER’
> >  1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag),
> > (_num)))
> >       |           ^~~~
> > drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: note: by argument 1 of type
> > ‘const void * const*’ to ‘void(const void * const*, const void * const*,
> const
> > void * const*, const uint32_t *, uint32_t **, const uint32_t)’ {aka
> ‘void(const
> > void * const*, const void * const*, const void * const*, const unsigned int *,
> > unsigned int **, const unsigned int)’}
> > /aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of
> > macro ‘IMB_ZUC_EIA3_N_BUFFER’
> >  1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag),
> > (_num)))
> >       |           ^~~~
> > drivers/crypto/ipsec_mb/pmd_zuc.c:145:21: note: ‘hash_keys’ declared
> here
> >   145 |         const void *hash_keys[ZUC_MAX_BURST];
> >       |                     ^~~~~~~~~
> > In file included from
> > ../../dpdk/drivers/crypto/ipsec_mb/ipsec_mb_private.h:8,
> >                  from ../../dpdk/drivers/crypto/ipsec_mb/pmd_zuc_priv.h:8,
> >                  from ../../dpdk/drivers/crypto/ipsec_mb/pmd_zuc.c:5:
> > drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: error: ‘iv’ may be used
> > uninitialized [-Werror=maybe-uninitialized]
> >   176 |         IMB_ZUC_EIA3_N_BUFFER(qp->mb_mgr, (const void
> > **)hash_keys,
> > /aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of
> > macro ‘IMB_ZUC_EIA3_N_BUFFER’
> >  1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag),
> > (_num)))
> >       |           ^~~~
> > drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: note: by argument 2 of type
> > ‘const void * const*’ to ‘void(const void * const*, const void * const*,
> const
> > void * const*, const uint32_t *, uint32_t **, const uint32_t)’ {aka
> ‘void(const
> > void * const*, const void * const*, const void * const*, const unsigned int *,
> > unsigned int **, const unsigned int)’}
> > /aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of
> > macro ‘IMB_ZUC_EIA3_N_BUFFER’
> >  1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag),
> > (_num)))
> >       |           ^~~~
> > drivers/crypto/ipsec_mb/pmd_zuc.c:144:18: note: ‘iv’ declared here
> >   144 |         uint8_t *iv[ZUC_MAX_BURST];
> >       |                  ^~
> > In file included from
> > ../../dpdk/drivers/crypto/ipsec_mb/ipsec_mb_private.h:8,
> >                  from ../../dpdk/drivers/crypto/ipsec_mb/pmd_zuc_priv.h:8,
> >                  from ../../dpdk/drivers/crypto/ipsec_mb/pmd_zuc.c:5:
> > drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: error: ‘src’ may be used
> > uninitialized [-Werror=maybe-uninitialized]
> >   176 |         IMB_ZUC_EIA3_N_BUFFER(qp->mb_mgr, (const void
> > **)hash_keys,
> > /aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of
> > macro ‘IMB_ZUC_EIA3_N_BUFFER’
> >  1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag),
> > (_num)))
> >       |           ^~~~
> > ../../dpdk/d(const void * const*, const void * const*, const void * const*,
> > const uint32_t *, uint32_t **, const uint32_t)’ {aka ‘void(const void *
> const*,
> > const void * const*, const void * const*, const unsigned int *, unsigned int
> > **, const unsigned int)’}
> >   176 |         IMB_ZUC_EIA3_N_BUFFER(qp->mb_mgr, (const void
> > **)hash_keys,
> > /aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of
> > macro ‘IMB_ZUC_EIA3_N_BUFFER’
> >  1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag),
> > (_num)))
> >       |           ^~~~
> > drivers/crypto/ipsec_mb/pmd_zuc.c:141:18: note: ‘src’ declared here
> >   141 |         uint8_t *src[ZUC_MAX_BURST];
> >       |                  ^~~
> > In file included from
> > ../../dpdk/drivers/crypto/ipsec_mb/ipsec_mb_private.h:8,
> >                  from ../../dpdk/drivers/crypto/ipsec_mb/pmd_zuc_priv.h:8,
> >                  from ../../dpdk/drivers/crypto/ipsec_mb/pmd_zuc.c:5:
> > drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: error: ‘length_in_bits’ may be
> > used uninitialized [-Werror=maybe-uninitialized]
> >   176 |         IMB_ZUC_EIA3_N_BUFFER(qp->mb_mgr, (const void
> > **)hash_keys,
> > /aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of
> > macro ‘IMB_ZUC_EIA3_N_BUFFER’
> >  1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag),
> > (_num)))
> >       |           ^~~~
> > drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: note: by argument 4 of type
> > ‘const uint32_t *’ {aka ‘const unsigned int *’} to ‘void(const void * const*,
> > const void * const*, const void * const*, const uint32_t *, uint32_t **,
> const
> > uint32_t)’ {aka ‘void(const void * const*, const void * const*, const void *
> > const*, const unsigned int *, unsigned int **, const unsigned int)’}
> >   176 |         IMB_ZUC_EIA3_N_BUFFER(qp->mb_mgr, (const void
> > **)hash_keys,
> > /aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of
> > macro ‘IMB_ZUC_EIA3_N_BUFFER’
> >  1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag),
> > (_num)))
> >       |           ^~~~
> > drivers/crypto/ipsec_mb/pmd_zuc.c:143:18: note: ‘length_in_bits’
> declared
> > here
> >   143 |         uint32_t length_in_bits[ZUC_MAX_BURST];
> >       |                  ^~~~~~~~~~~~~~
> > cc1: all warnings being treated as errors
> >
> > I think I will just drop all these patches from 21.11-rc1.
> >
> > Not sure I will accept any new revision, given how I am annoyed recently
> > by such bad work in Intel.
> >
  
Thomas Monjalon Oct. 20, 2021, 9:01 a.m. UTC | #6
20/10/2021 10:31, Akhil Goyal:
> > > > Acked-by: Akhil Goyal <gakhil@marvell.com>
> > > > Patches are rebased over TOT of next-crypto
> > > > Release notes are updated
> > > > Applied to dpdk-next-crypto
> > >
> > > I think compilation has not been tested.
> > 
> > I am not sure why this is failing at your end,
> > On my machine, it is getting compiled with intel-ipsec-mb v1.0.
> > I am double checking compilation for all the individual patches as well.
> > Will inform you once it is completed.
> > On TOT of next crypto, I did a quick test touched the pmd_zuc.c and it is
> > getting compiled.
> > cavium@cavium-DT13:~/up/dpdk-next-crypto$ touch
> > drivers/crypto/ipsec_mb/pmd_zuc.c
> > cavium@cavium-DT13:~/up/dpdk-next-crypto$ ./devtools/test-meson-
> > builds.sh
> > ninja: Entering directory `./build-gcc-static'
> > [24/24] Linking target app/test/dpdk-test.
> > ninja: Entering directory `./build-gcc-shared'
> > [8/8] Linking target drivers/librte_crypto_ipsec_mb.so.22.0.
> > ninja: Entering directory `./build-clang-static'
> > [24/24] Linking target app/test/dpdk-test.
> > ninja: Entering directory `./build-clang-shared'
> > [8/8] Linking target drivers/librte_crypto_ipsec_mb.so.22.0.
> > ninja: Entering directory `./build-x86-generic'
> > [9/9] Linking target buildtools/chkincs/chkincs.
> > ninja: Entering directory `./build-x86-mingw'
> > ninja: no work to do.
> > 
> > > You need to update intel-ipsec-mb to v1.0.
> I have tried compilation of individual patches as well. It works fine for me.
> I see that the ipsec_mb is not in content skipped. So my intel-ipsec-mb version is 1.0.

It may be due to the fact that I play with CFLAGS and don't install the lib.
I will check again for next pull.
  
Akhil Goyal Oct. 20, 2021, 9:04 a.m. UTC | #7
> Hi Thomas,
> 
> As stated in all cryptodev guides for the PMDs based on intel-ipsec-mb,
> the minimum dependent intel-ipsec-mb lib version is bumped to 1.0.
> 
> Could you bump the library version and try again?
> 
Hi Fan,
The version is bumped.
I downloaded from the zip link https://github.com/01org/intel-ipsec-mb/archive/v1.0.zip
And Thomas pulled it from git.
And when I downloaded from master of https://github.com/intel/intel-ipsec-mb.

With the zip link it worked fine, but not from git.
I see there are some differences in the code. Could you check?


> Regards,
> Fan
> 
> > -----Original Message-----
> > From: Akhil Goyal <gakhil@marvell.com>
> > Sent: Wednesday, October 20, 2021 5:24 AM
> > To: Thomas Monjalon <thomas@monjalon.net>; Power, Ciara
> > <ciara.power@intel.com>; De Lara Guarch, Pablo
> > <pablo.de.lara.guarch@intel.com>; Mcnamara, John
> > <john.mcnamara@intel.com>
> > Cc: dev@dpdk.org; Zhang, Roy Fan <roy.fan.zhang@intel.com>; Bronowski,
> > PiotrX <piotrx.bronowski@intel.com>; mdr@ashroe.eu;
> > david.marchand@redhat.com
> > Subject: RE: [dpdk-dev] [EXT] [PATCH v4 00/14] drivers/crypto: introduce
> > ipsec_mb framework
> >
> > > 18/10/2021 17:21, Akhil Goyal:
> > > > > This set of patches introduces a new framework, making all common
> > > code of
> > > > > SW crypto PMD implementations built on top of intel-ipsec-mb library
> > > > > sharable. This helps to reduce future effort on the code maintenance
> > and
> > > > > future updates. It also moves all SW PMD implementation specific
> > details
> > > > > into single files located in the crypto/ipsec_mb folder.
> > > > > A CHACHA20_POLY1305 SW PMD is added based on this framework.
> > > > >
> > > > > Multi-process support for the PMDs is added for intel-ipsec-mb v1.1.
> > > > > The minimum intel-ipsec-mb version required is bumped to 1.0.
> > > > >
> > > > > ZUC-256 support is added for the aesni_mb PMD, with relevant tests.
> > > > >
> > > > > v4:
> > > >
> > > > Acked-by: Akhil Goyal <gakhil@marvell.com>
> > > > Patches are rebased over TOT of next-crypto
> > > > Release notes are updated
> > > > Applied to dpdk-next-crypto
> > >
> > > I think compilation has not been tested.
> >
> > I am not sure why this is failing at your end,
> > On my machine, it is getting compiled with intel-ipsec-mb v1.0.
> > I am double checking compilation for all the individual patches as well.
> > Will inform you once it is completed.
> > On TOT of next crypto, I did a quick test touched the pmd_zuc.c and it is
> > getting compiled.
> > cavium@cavium-DT13:~/up/dpdk-next-crypto$ touch
> > drivers/crypto/ipsec_mb/pmd_zuc.c
> > cavium@cavium-DT13:~/up/dpdk-next-crypto$ ./devtools/test-meson-
> > builds.sh
> > ninja: Entering directory `./build-gcc-static'
> > [24/24] Linking target app/test/dpdk-test.
> > ninja: Entering directory `./build-gcc-shared'
> > [8/8] Linking target drivers/librte_crypto_ipsec_mb.so.22.0.
> > ninja: Entering directory `./build-clang-static'
> > [24/24] Linking target app/test/dpdk-test.
> > ninja: Entering directory `./build-clang-shared'
> > [8/8] Linking target drivers/librte_crypto_ipsec_mb.so.22.0.
> > ninja: Entering directory `./build-x86-generic'
> > [9/9] Linking target buildtools/chkincs/chkincs.
> > ninja: Entering directory `./build-x86-mingw'
> > ninja: no work to do.
> >
> > > You need to update intel-ipsec-mb to v1.0.
> > > Result:
> > >
> > > drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: error: ‘hash_keys’ may be
> > used
> > > uninitialized [-Werror=maybe-uninitialized]/aesni/intel-ipsec-
> mb/lib/intel-
> > > ipsec-mb.h:1444:11: note: in definition of macro
> > ‘IMB_ZUC_EIA3_N_BUFFER’
> > >  1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag),
> > > (_num)))
> > >       |           ^~~~
> > > drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: note: by argument 1 of type
> > > ‘const void * const*’ to ‘void(const void * const*, const void * const*,
> > const
> > > void * const*, const uint32_t *, uint32_t **, const uint32_t)’ {aka
> > ‘void(const
> > > void * const*, const void * const*, const void * const*, const unsigned int
> *,
> > > unsigned int **, const unsigned int)’}
> > > /aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of
> > > macro ‘IMB_ZUC_EIA3_N_BUFFER’
> > >  1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag),
> > > (_num)))
> > >       |           ^~~~
> > > drivers/crypto/ipsec_mb/pmd_zuc.c:145:21: note: ‘hash_keys’ declared
> > here
> > >   145 |         const void *hash_keys[ZUC_MAX_BURST];
> > >       |                     ^~~~~~~~~
> > > In file included from
> > > ../../dpdk/drivers/crypto/ipsec_mb/ipsec_mb_private.h:8,
> > >                  from ../../dpdk/drivers/crypto/ipsec_mb/pmd_zuc_priv.h:8,
> > >                  from ../../dpdk/drivers/crypto/ipsec_mb/pmd_zuc.c:5:
> > > drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: error: ‘iv’ may be used
> > > uninitialized [-Werror=maybe-uninitialized]
> > >   176 |         IMB_ZUC_EIA3_N_BUFFER(qp->mb_mgr, (const void
> > > **)hash_keys,
> > > /aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of
> > > macro ‘IMB_ZUC_EIA3_N_BUFFER’
> > >  1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag),
> > > (_num)))
> > >       |           ^~~~
> > > drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: note: by argument 2 of type
> > > ‘const void * const*’ to ‘void(const void * const*, const void * const*,
> > const
> > > void * const*, const uint32_t *, uint32_t **, const uint32_t)’ {aka
> > ‘void(const
> > > void * const*, const void * const*, const void * const*, const unsigned int
> *,
> > > unsigned int **, const unsigned int)’}
> > > /aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of
> > > macro ‘IMB_ZUC_EIA3_N_BUFFER’
> > >  1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag),
> > > (_num)))
> > >       |           ^~~~
> > > drivers/crypto/ipsec_mb/pmd_zuc.c:144:18: note: ‘iv’ declared here
> > >   144 |         uint8_t *iv[ZUC_MAX_BURST];
> > >       |                  ^~
> > > In file included from
> > > ../../dpdk/drivers/crypto/ipsec_mb/ipsec_mb_private.h:8,
> > >                  from ../../dpdk/drivers/crypto/ipsec_mb/pmd_zuc_priv.h:8,
> > >                  from ../../dpdk/drivers/crypto/ipsec_mb/pmd_zuc.c:5:
> > > drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: error: ‘src’ may be used
> > > uninitialized [-Werror=maybe-uninitialized]
> > >   176 |         IMB_ZUC_EIA3_N_BUFFER(qp->mb_mgr, (const void
> > > **)hash_keys,
> > > /aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of
> > > macro ‘IMB_ZUC_EIA3_N_BUFFER’
> > >  1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag),
> > > (_num)))
> > >       |           ^~~~
> > > ../../dpdk/d(const void * const*, const void * const*, const void * const*,
> > > const uint32_t *, uint32_t **, const uint32_t)’ {aka ‘void(const void *
> > const*,
> > > const void * const*, const void * const*, const unsigned int *, unsigned
> int
> > > **, const unsigned int)’}
> > >   176 |         IMB_ZUC_EIA3_N_BUFFER(qp->mb_mgr, (const void
> > > **)hash_keys,
> > > /aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of
> > > macro ‘IMB_ZUC_EIA3_N_BUFFER’
> > >  1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag),
> > > (_num)))
> > >       |           ^~~~
> > > drivers/crypto/ipsec_mb/pmd_zuc.c:141:18: note: ‘src’ declared here
> > >   141 |         uint8_t *src[ZUC_MAX_BURST];
> > >       |                  ^~~
> > > In file included from
> > > ../../dpdk/drivers/crypto/ipsec_mb/ipsec_mb_private.h:8,
> > >                  from ../../dpdk/drivers/crypto/ipsec_mb/pmd_zuc_priv.h:8,
> > >                  from ../../dpdk/drivers/crypto/ipsec_mb/pmd_zuc.c:5:
> > > drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: error: ‘length_in_bits’ may
> be
> > > used uninitialized [-Werror=maybe-uninitialized]
> > >   176 |         IMB_ZUC_EIA3_N_BUFFER(qp->mb_mgr, (const void
> > > **)hash_keys,
> > > /aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of
> > > macro ‘IMB_ZUC_EIA3_N_BUFFER’
> > >  1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag),
> > > (_num)))
> > >       |           ^~~~
> > > drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: note: by argument 4 of type
> > > ‘const uint32_t *’ {aka ‘const unsigned int *’} to ‘void(const void * const*,
> > > const void * const*, const void * const*, const uint32_t *, uint32_t **,
> > const
> > > uint32_t)’ {aka ‘void(const void * const*, const void * const*, const void *
> > > const*, const unsigned int *, unsigned int **, const unsigned int)’}
> > >   176 |         IMB_ZUC_EIA3_N_BUFFER(qp->mb_mgr, (const void
> > > **)hash_keys,
> > > /aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of
> > > macro ‘IMB_ZUC_EIA3_N_BUFFER’
> > >  1444 |         ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag),
> > > (_num)))
> > >       |           ^~~~
> > > drivers/crypto/ipsec_mb/pmd_zuc.c:143:18: note: ‘length_in_bits’
> > declared
> > > here
> > >   143 |         uint32_t length_in_bits[ZUC_MAX_BURST];
> > >       |                  ^~~~~~~~~~~~~~
> > > cc1: all warnings being treated as errors
> > >
> > > I think I will just drop all these patches from 21.11-rc1.
> > >
> > > Not sure I will accept any new revision, given how I am annoyed recently
> > > by such bad work in Intel.
> > >