++ Fan Zhang I think I missed adding one of the major contributor for this cleanup.
> -----Original Message----- > From: Akhil Goyal <gak...@marvell.com> > Sent: Wednesday, September 21, 2022 8:33 PM > To: dev@dpdk.org > Cc: tho...@monjalon.net; david.march...@redhat.com; > hemant.agra...@nxp.com; Vamsi Krishna Attunuru <vattun...@marvell.com>; > ferruh.yi...@xilinx.com; andrew.rybche...@oktetlabs.ru; > konstantin.v.anan...@yandex.ru; jiawe...@trustnetic.com; > yisen.zhu...@huawei.com; Igor Russkikh <irussk...@marvell.com>; Jerin Jacob > Kollanukkaran <jer...@marvell.com>; Ankur Dwivedi <adwiv...@marvell.com>; > maxime.coque...@redhat.com; cha...@amd.com; ruifeng.w...@arm.com; > ajit.khapa...@broadcom.com; Anoob Joseph <ano...@marvell.com>; > pablo.de.lara.gua...@intel.com; ma...@nvidia.com; g.si...@nxp.com; > qiming.y...@intel.com; wenjun1...@intel.com; jianw...@trustnetic.com; > jingjing...@intel.com; beilei.x...@intel.com; Nithin Kumar Dabilpuram > <ndabilpu...@marvell.com>; Akhil Goyal <gak...@marvell.com> > Subject: [PATCH v2 0/6] crypto/security session framework rework > > This patchset reworks the symmetric crypto and security session > data structure to use a single virtual/physical contiguous buffer > for symmetric crypto/security session and driver private data. > In addition the session data structure is now private. > The session is represented as an opaque pointer in the application. > > With the change the session is no longer supported to be accessed > by multiple device drivers. For the same reason > rte_cryptodev_sym_session_init/clear APIs are deprecated as > rte_cryptodev_sym_session_create/free will initialize and > clear the driver specific data field. > > The change was also submitted last year during DPDK 21.11 > timeframe also[1], but was not applied due to lack of feedback from > community. Please help in getting this cleanup merged in this cycle. > > Now the similar work was already done for asymmetric crypto. > This patchset is rebased over current tree and fixes all > the issues reported so far. > This patchset is a v2 for the patch that was sent by Fan Zhang(Intel) > with a few changes > - Added security session rework also. > - fixed issues in [2] reported on mailing list. > - few other fixes. > > Please review and provide feedback as soon as possible > as this is intended to be merged in DPDK 22.11 RC1. > > Currently the cnxk platform is tested with this change. > Request everyone to review and test on their platform. > > Special note to ixgbe and txgbe maintainers. > There is a wrong implementation for flow creation. Please check. > A hack is added to bypass it. Please fix it separately. > > [1] https://patches.dpdk.org/project/dpdk/cover/20211018213452.2734720-1- > gak...@marvell.com/ > [2] https://patches.dpdk.org/project/dpdk/cover/20220829160645.378406-1- > roy.fan.zh...@intel.com/ > > Akhil Goyal (5): > cryptodev: rework session framework > cryptodev: hide sym session structure > security: remove priv mempool usage > drivers/crypto: support security session get size op > security: hide session structure > > Fan Zhang (1): > crypto/scheduler: use unified session > > app/test-crypto-perf/cperf.h | 1 - > app/test-crypto-perf/cperf_ops.c | 40 +-- > app/test-crypto-perf/cperf_ops.h | 2 +- > app/test-crypto-perf/cperf_test_latency.c | 9 +- > app/test-crypto-perf/cperf_test_latency.h | 1 - > .../cperf_test_pmd_cyclecount.c | 10 +- > .../cperf_test_pmd_cyclecount.h | 1 - > app/test-crypto-perf/cperf_test_throughput.c | 11 +- > app/test-crypto-perf/cperf_test_throughput.h | 1 - > app/test-crypto-perf/cperf_test_verify.c | 9 +- > app/test-crypto-perf/cperf_test_verify.h | 1 - > app/test-crypto-perf/main.c | 30 +- > app/test-eventdev/test_perf_common.c | 35 +- > app/test-eventdev/test_perf_common.h | 1 - > app/test/test_cryptodev.c | 336 +++++------------- > app/test/test_cryptodev_blockcipher.c | 16 +- > app/test/test_cryptodev_security_ipsec.c | 2 +- > app/test/test_cryptodev_security_ipsec.h | 2 +- > app/test/test_event_crypto_adapter.c | 35 +- > app/test/test_ipsec.c | 47 +-- > app/test/test_ipsec_perf.c | 4 +- > app/test/test_security.c | 178 ++-------- > app/test/test_security_inline_proto.c | 26 +- > doc/guides/prog_guide/cryptodev_lib.rst | 16 +- > doc/guides/rel_notes/deprecation.rst | 9 + > doc/guides/rel_notes/release_22_11.rst | 7 + > drivers/common/cnxk/roc_cpt.c | 4 +- > drivers/crypto/armv8/rte_armv8_pmd.c | 21 +- > drivers/crypto/armv8/rte_armv8_pmd_ops.c | 32 +- > drivers/crypto/bcmfs/bcmfs_sym_session.c | 39 +- > drivers/crypto/bcmfs/bcmfs_sym_session.h | 3 +- > drivers/crypto/caam_jr/caam_jr.c | 69 +--- > drivers/crypto/ccp/ccp_crypto.c | 56 +-- > drivers/crypto/ccp/ccp_pmd_ops.c | 32 +- > drivers/crypto/ccp/ccp_pmd_private.h | 2 - > drivers/crypto/ccp/rte_ccp_pmd.c | 29 +- > drivers/crypto/cnxk/cn10k_cryptodev_ops.c | 41 +-- > drivers/crypto/cnxk/cn10k_ipsec.c | 45 +-- > drivers/crypto/cnxk/cn9k_cryptodev_ops.c | 38 +- > drivers/crypto/cnxk/cn9k_ipsec.c | 54 +-- > drivers/crypto/cnxk/cnxk_cryptodev_ops.c | 55 +-- > drivers/crypto/cnxk/cnxk_cryptodev_ops.h | 16 +- > drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 70 ++-- > drivers/crypto/dpaa2_sec/dpaa2_sec_raw_dp.c | 6 +- > drivers/crypto/dpaa_sec/dpaa_sec.c | 69 +--- > drivers/crypto/dpaa_sec/dpaa_sec_raw_dp.c | 7 +- > drivers/crypto/ipsec_mb/ipsec_mb_ops.c | 34 +- > drivers/crypto/ipsec_mb/ipsec_mb_private.h | 41 +-- > drivers/crypto/ipsec_mb/pmd_aesni_gcm.c | 48 +-- > drivers/crypto/ipsec_mb/pmd_aesni_mb.c | 62 +--- > drivers/crypto/ipsec_mb/pmd_chacha_poly.c | 4 - > drivers/crypto/ipsec_mb/pmd_kasumi.c | 10 +- > drivers/crypto/ipsec_mb/pmd_snow3g.c | 9 +- > drivers/crypto/ipsec_mb/pmd_zuc.c | 4 - > drivers/crypto/mlx5/mlx5_crypto.c | 25 +- > drivers/crypto/mvsam/rte_mrvl_pmd.c | 11 +- > drivers/crypto/mvsam/rte_mrvl_pmd_ops.c | 49 +-- > drivers/crypto/nitrox/nitrox_sym.c | 39 +- > drivers/crypto/null/null_crypto_pmd.c | 20 +- > drivers/crypto/null/null_crypto_pmd_ops.c | 33 +- > drivers/crypto/null/null_crypto_pmd_private.h | 2 - > .../crypto/octeontx/otx_cryptodev_hw_access.h | 1 - > drivers/crypto/octeontx/otx_cryptodev_ops.c | 67 +--- > drivers/crypto/openssl/openssl_pmd_private.h | 2 - > drivers/crypto/openssl/rte_openssl_pmd.c | 24 +- > drivers/crypto/openssl/rte_openssl_pmd_ops.c | 29 +- > drivers/crypto/qat/dev/qat_sym_pmd_gen1.c | 1 + > drivers/crypto/qat/qat_sym.c | 15 +- > drivers/crypto/qat/qat_sym.h | 16 +- > drivers/crypto/qat/qat_sym_session.c | 73 ++-- > drivers/crypto/qat/qat_sym_session.h | 10 +- > drivers/crypto/scheduler/scheduler_failover.c | 19 +- > .../crypto/scheduler/scheduler_multicore.c | 17 + > .../scheduler/scheduler_pkt_size_distr.c | 81 +++-- > drivers/crypto/scheduler/scheduler_pmd_ops.c | 93 ++++- > .../crypto/scheduler/scheduler_pmd_private.h | 120 ++++++- > .../crypto/scheduler/scheduler_roundrobin.c | 11 +- > drivers/crypto/virtio/virtio_cryptodev.c | 40 +-- > drivers/crypto/virtio/virtio_rxtx.c | 3 +- > drivers/net/cnxk/cn10k_ethdev_sec.c | 38 +- > drivers/net/cnxk/cn9k_ethdev_sec.c | 32 +- > drivers/net/iavf/iavf_ipsec_crypto.c | 23 +- > drivers/net/iavf/iavf_ipsec_crypto.h | 2 +- > drivers/net/ixgbe/ixgbe_ipsec.c | 31 +- > drivers/net/txgbe/txgbe_ipsec.c | 32 +- > examples/fips_validation/fips_dev_self_test.c | 40 +-- > examples/fips_validation/main.c | 35 +- > examples/ipsec-secgw/ipsec-secgw.c | 44 +-- > examples/ipsec-secgw/ipsec.c | 16 +- > examples/ipsec-secgw/ipsec.h | 1 - > examples/ipsec-secgw/ipsec_worker.c | 2 +- > examples/l2fwd-crypto/main.c | 54 +-- > examples/vhost_crypto/main.c | 16 +- > lib/cryptodev/cryptodev_pmd.h | 60 ++-- > lib/cryptodev/cryptodev_trace_points.c | 6 - > lib/cryptodev/rte_crypto.h | 3 +- > lib/cryptodev/rte_crypto_sym.h | 11 +- > lib/cryptodev/rte_cryptodev.c | 284 ++++++--------- > lib/cryptodev/rte_cryptodev.h | 153 +++----- > lib/cryptodev/rte_cryptodev_trace.h | 35 +- > lib/cryptodev/version.map | 6 - > lib/ipsec/rte_ipsec_group.h | 13 +- > lib/ipsec/ses.c | 5 +- > lib/pipeline/rte_table_action.c | 10 +- > lib/security/rte_security.c | 33 +- > lib/security/rte_security.h | 90 +++-- > lib/security/rte_security_driver.h | 31 +- > lib/vhost/rte_vhost_crypto.h | 3 - > lib/vhost/vhost_crypto.c | 28 +- > 109 files changed, 1255 insertions(+), 2413 deletions(-) > > -- > 2.25.1