Hi Akhil, We have verified this patch series on DPAA1 and DPAA2 platforms using test and ipsec-secgw applications.
Series Tested-by: Gagandeep Singh <[email protected]> Regards, Gagan > -----Original Message----- > From: Akhil Goyal <[email protected]> > Sent: Wednesday, September 21, 2022 8:33 PM > To: [email protected] > Cc: [email protected]; [email protected]; Hemant Agrawal > <[email protected]>; [email protected]; > [email protected]; [email protected]; > [email protected]; [email protected]; > [email protected]; [email protected]; [email protected]; > [email protected]; [email protected]; [email protected]; > [email protected]; [email protected]; > [email protected]; [email protected]; [email protected]; > Gagandeep Singh <[email protected]>; [email protected]; > [email protected]; [email protected]; [email protected]; > [email protected]; [email protected]; Akhil Goyal > <[email protected]> > 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://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpatch > es.dpdk.org%2Fproject%2Fdpdk%2Fcover%2F20211018213452.2734720-1- > gakhil%40marvell.com%2F&data=05%7C01%7Cg.singh%40nxp.com%7 > C4654103c909a4dd3031208da9be279f0%7C686ea1d3bc2b4c6fa92cd99c5c3 > 01635%7C0%7C0%7C637993694272898803%7CUnknown%7CTWFpbGZsb3d > 8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0% > 3D%7C3000%7C%7C%7C&sdata=NkLq49IFdRzKdHwZ5mvLJhLKi5pxsV15 > t5ZsC8lK1Xc%3D&reserved=0 > [2] > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpatch > es.dpdk.org%2Fproject%2Fdpdk%2Fcover%2F20220829160645.378406-1- > roy.fan.zhang%40intel.com%2F&data=05%7C01%7Cg.singh%40nxp.co > m%7C4654103c909a4dd3031208da9be279f0%7C686ea1d3bc2b4c6fa92cd99 > c5c301635%7C0%7C0%7C637993694272898803%7CUnknown%7CTWFpbGZ > sb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6 > Mn0%3D%7C3000%7C%7C%7C&sdata=WLJbXuU%2FLDeV9QlEUhqfNF > 7XAG8itcI%2BMdHgecv%2BaN4%3D&reserved=0 > > 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

