> 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 <gak...@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. >