Series- Acked-by: Hemant Agrawal <hemant.agra...@nxp.com>
> -----Original Message----- > From: dev <dev-boun...@dpdk.org> On Behalf Of Akhil Goyal > Sent: Tuesday, October 19, 2021 3:05 AM > To: dev@dpdk.org > Cc: tho...@monjalon.net; david.march...@redhat.com; Hemant Agrawal > <hemant.agra...@nxp.com>; ano...@marvell.com; > pablo.de.lara.gua...@intel.com; fiona.tr...@intel.com; > declan.dohe...@intel.com; ma...@nvidia.com; Gagandeep Singh > <g.si...@nxp.com>; roy.fan.zh...@intel.com; jianjay.z...@huawei.com; > asoma...@amd.com; ruifeng.w...@arm.com; > konstantin.anan...@intel.com; radu.nico...@intel.com; > ajit.khapa...@broadcom.com; rnagadhee...@marvell.com; > adwiv...@marvell.com; ciara.po...@intel.com; haiyue.w...@intel.com; > jiawe...@trustnetic.com; jianw...@trustnetic.com; Akhil Goyal > <gak...@marvell.com> > Subject: [dpdk-dev] [PATCH v3 0/8] crypto/security session framework > rework > Importance: High > > As discussed in last release deprecation notice, crypto and security session > framework are reworked to reduce the need of two mempool objects and > remove the requirement to expose the rte_security_session and > rte_cryptodev_sym_session structures. > Design methodology is explained in the patch description. > > Similar work will need to be done for asymmetric sessions as well. > Asymmetric session need another rework and is postponed to next release. > Since it is still in experimental stage, we can modify the APIs in next > release as > well. > > The patches are compilable with all affected PMDs and tested with dpdk-test > and test-crypto-perf app on CN9k platform. > > The series is rebased over "cryptodev: hide internal structures" > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpatch > work.dpdk.org%2Fproject%2Fdpdk%2Flist%2F%3Fseries%3D19749&dat > a=04%7C01%7Chemant.agrawal%40nxp.com%7C670e1914f95c49cbd24608d > 9927f2b28%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C6377018 > 97169217767%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJ > QIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=KPG > ZGoNXdfucnr3yA422eGc6EO%2BdXqCj3VSo7IlbX94%3D&reserved=0 > > Changes in v3 > - rebased over next-crypto TOT > - Release notes updated and deprecation notice removed. > - Documentation updates. > - fix session less crypto > - fix asym crypto issue for qp setup > - add sess_iova param to PMD session configure APIs to pass physical address > of session pointer. > - rework cnxk net PMD based on the new session framework. > - added missing op to get size of security session private data > > Changes in v2: > - Added new parameter iova in PMD session configure APIs for > session priv pointer to be used in QAT/CNXK/etc PMDs. > - Hide rte_cryptodev_sym_session and rte_security_session structs. > - Added compilation workaround for net PMDs(ixgbe/txgbe) > for inline ipsec. > Patches with actual fix is beynd the scope of this patchset. > - Added inline APIs to access the opaque data and fast metadata. > - Remove commented code. > > TODO > - Asym APIs - postponed for next release. > > > Akhil Goyal (8): > security: rework session framework > security: hide security session struct > net/cnxk: rework security session framework > security: pass session iova in PMD sess create > drivers/crypto: support security session get size op > cryptodev: rework session framework > cryptodev: hide sym session structure > cryptodev: pass session iova in configure session > > app/test-crypto-perf/cperf.h | 1 - > app/test-crypto-perf/cperf_ops.c | 46 ++-- > app/test-crypto-perf/cperf_ops.h | 6 +- > app/test-crypto-perf/cperf_test_latency.c | 5 +- > app/test-crypto-perf/cperf_test_latency.h | 1 - > .../cperf_test_pmd_cyclecount.c | 7 +- > .../cperf_test_pmd_cyclecount.h | 1 - > app/test-crypto-perf/cperf_test_throughput.c | 5 +- > app/test-crypto-perf/cperf_test_throughput.h | 1 - > app/test-crypto-perf/cperf_test_verify.c | 5 +- > app/test-crypto-perf/cperf_test_verify.h | 1 - > app/test-crypto-perf/main.c | 29 +-- > app/test/test_cryptodev.c | 147 ++++--------- > app/test/test_cryptodev.h | 1 - > app/test/test_cryptodev_asym.c | 3 +- > app/test/test_cryptodev_blockcipher.c | 6 +- > app/test/test_event_crypto_adapter.c | 28 +-- > app/test/test_ipsec.c | 34 +-- > app/test/test_ipsec_perf.c | 4 +- > app/test/test_security.c | 196 ++++-------------- > doc/guides/prog_guide/cryptodev_lib.rst | 10 +- > doc/guides/prog_guide/rte_security.rst | 11 +- > doc/guides/rel_notes/deprecation.rst | 9 - > doc/guides/rel_notes/release_21_11.rst | 14 ++ > drivers/crypto/armv8/armv8_pmd_private.h | 2 - > drivers/crypto/armv8/rte_armv8_pmd.c | 21 +- > drivers/crypto/armv8/rte_armv8_pmd_ops.c | 34 +-- > drivers/crypto/bcmfs/bcmfs_sym_session.c | 36 +--- > drivers/crypto/bcmfs/bcmfs_sym_session.h | 6 +- > drivers/crypto/caam_jr/caam_jr.c | 71 ++----- > drivers/crypto/ccp/ccp_pmd_ops.c | 32 +-- > drivers/crypto/ccp/ccp_pmd_private.h | 2 - > drivers/crypto/ccp/rte_ccp_pmd.c | 24 +-- > drivers/crypto/cnxk/cn10k_cryptodev_ops.c | 24 +-- > drivers/crypto/cnxk/cn10k_ipsec.c | 53 +---- > drivers/crypto/cnxk/cn9k_cryptodev_ops.c | 20 +- > drivers/crypto/cnxk/cn9k_ipsec.c | 75 +++---- > drivers/crypto/cnxk/cnxk_cryptodev_ops.c | 61 ++---- > drivers/crypto/cnxk/cnxk_cryptodev_ops.h | 16 +- > drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 76 ++----- > drivers/crypto/dpaa2_sec/dpaa2_sec_raw_dp.c | 3 +- > drivers/crypto/dpaa_sec/dpaa_sec.c | 75 ++----- > drivers/crypto/dpaa_sec/dpaa_sec_raw_dp.c | 3 +- > drivers/crypto/ipsec_mb/ipsec_mb_ops.c | 32 +-- > drivers/crypto/ipsec_mb/ipsec_mb_private.h | 29 +-- > drivers/crypto/ipsec_mb/pmd_aesni_gcm.c | 23 +- > drivers/crypto/ipsec_mb/pmd_aesni_mb.c | 40 ++-- > drivers/crypto/ipsec_mb/pmd_chacha_poly.c | 1 - > drivers/crypto/ipsec_mb/pmd_kasumi.c | 1 - > drivers/crypto/ipsec_mb/pmd_snow3g.c | 1 - > drivers/crypto/ipsec_mb/pmd_zuc.c | 1 - > drivers/crypto/mlx5/mlx5_crypto.c | 25 +-- > drivers/crypto/mvsam/mrvl_pmd_private.h | 3 - > drivers/crypto/mvsam/rte_mrvl_pmd.c | 3 +- > drivers/crypto/mvsam/rte_mrvl_pmd_ops.c | 55 ++--- > drivers/crypto/nitrox/nitrox_sym.c | 33 +-- > drivers/crypto/null/null_crypto_pmd.c | 20 +- > drivers/crypto/null/null_crypto_pmd_ops.c | 34 +-- > drivers/crypto/null/null_crypto_pmd_private.h | 2 - > .../crypto/octeontx/otx_cryptodev_hw_access.h | 1 - > drivers/crypto/octeontx/otx_cryptodev_ops.c | 68 +++--- > drivers/crypto/octeontx2/otx2_cryptodev_ops.c | 63 +++--- > .../octeontx2/otx2_cryptodev_ops_helper.h | 16 +- > drivers/crypto/octeontx2/otx2_cryptodev_qp.h | 2 - > drivers/crypto/octeontx2/otx2_cryptodev_sec.c | 77 +++---- > drivers/crypto/openssl/openssl_pmd_private.h | 2 - > drivers/crypto/openssl/rte_openssl_pmd.c | 18 +- > drivers/crypto/openssl/rte_openssl_pmd_ops.c | 35 +--- > drivers/crypto/qat/qat_sym.c | 3 +- > drivers/crypto/qat/qat_sym.h | 8 +- > drivers/crypto/qat/qat_sym_pmd.c | 1 + > drivers/crypto/qat/qat_sym_session.c | 72 ++----- > drivers/crypto/qat/qat_sym_session.h | 17 +- > drivers/crypto/scheduler/scheduler_pmd_ops.c | 10 +- > drivers/crypto/virtio/virtio_cryptodev.c | 32 +-- > .../octeontx2/otx2_evdev_crypto_adptr_rx.h | 3 +- > drivers/net/cnxk/cn10k_ethdev_sec.c | 64 +++--- > drivers/net/cnxk/cn9k_ethdev_sec.c | 59 ++---- > drivers/net/cnxk/cnxk_ethdev.c | 6 +- > drivers/net/cnxk/cnxk_ethdev.h | 6 - > drivers/net/cnxk/cnxk_ethdev_sec.c | 21 -- > drivers/net/ixgbe/ixgbe_ipsec.c | 38 +--- > drivers/net/octeontx2/otx2_ethdev_sec.c | 52 ++--- > drivers/net/octeontx2/otx2_ethdev_sec_tx.h | 2 +- > drivers/net/txgbe/txgbe_ipsec.c | 38 +--- > examples/fips_validation/fips_dev_self_test.c | 32 +-- > examples/fips_validation/main.c | 20 +- > examples/ipsec-secgw/ipsec-secgw.c | 40 ---- > examples/ipsec-secgw/ipsec.c | 12 +- > examples/ipsec-secgw/ipsec.h | 1 - > examples/ipsec-secgw/ipsec_worker.c | 4 - > examples/l2fwd-crypto/main.c | 41 +--- > examples/vhost_crypto/main.c | 16 +- > lib/cryptodev/cryptodev_pmd.h | 33 ++- > lib/cryptodev/rte_crypto.h | 2 +- > lib/cryptodev/rte_crypto_sym.h | 2 +- > lib/cryptodev/rte_cryptodev.c | 91 ++++---- > lib/cryptodev/rte_cryptodev.h | 70 +++---- > lib/cryptodev/rte_cryptodev_trace.h | 16 +- > lib/ipsec/rte_ipsec.h | 4 +- > lib/ipsec/rte_ipsec_group.h | 13 +- > lib/ipsec/ses.c | 6 +- > lib/pipeline/rte_table_action.c | 8 +- > lib/pipeline/rte_table_action.h | 2 +- > lib/security/rte_security.c | 32 +-- > lib/security/rte_security.h | 85 +++++--- > lib/security/rte_security_driver.h | 31 ++- > lib/vhost/rte_vhost_crypto.h | 3 - > lib/vhost/vhost_crypto.c | 7 +- > 109 files changed, 913 insertions(+), 1880 deletions(-) > > -- > 2.25.1