> Introduce a new crypto PMD for hardware accelerators based on UADK [1]. > > UADK is a framework for user applications to access hardware accelerators. > UADK relies on IOMMU SVA (Shared Virtual Address) feature, which share > the same page table between IOMMU and MMU. > Thereby user application can directly use virtual address for device dma, > which enhances the performance as well as easy usability. > > [1] https://urldefense.proofpoint.com/v2/url?u=https- > 3A__github.com_Linaro_uadk&d=DwIDAg&c=nKjWec2b6R0mOyPaz7xtfQ&r=Dn > L7Si2wl_PRwpZ9TWey3eu68gBzn7DkPwuqhd6WNyo&m=AwapMJzvfUDL49W9f > mtmvIGZMarGUdjRSliBhG4tep6Uh5wN2zYrZRJ4JpbrVolg&s=MxSabEjMMkeRr0L > Z7c1gSmaJmJ1_dIdJIKrst98pKzk&e= > > Test: > sudo dpdk-test --vdev=crypto_uadk (--log-level=6) > RTE>>cryptodev_uadk_autotest > RTE>>quit > > Update in v7: > 05: fix key_size of SHA384 HMAC > > Update in v6: > Akhil helped review the v5, and address all the comments from Akhil > 01: add rel_notes info, update uadk.rst, put struct in header, etc. > 02: move struct to header > 04: move struct to header, remove RTE_CRYPTODEV_FF_SYM_SESSIONLESS > 05: fixed key_size in HMAC mode > 06: updated app/test/meson.build and uadk.rst in the mean time. > > Update in v5 > Patch 1 fix the build issue when uadk is installed to specific folder > And update doc accordingly > > Update in v4: > Akril suggest dpdk use pkg-config, So > Enable uadk support x86 local build, and support pkg-config. > Use pkg-config feature for the uadk crypto pmd. > Add build uadk library steps in doc > Test on both x86 and arm. > x86 can build and install, but can not test since no device. > > Resend v3: > Rebase on next/for-main, which just merged the series > "cryptodev: rework session framework". > > Update in v3: > Split patches according to Akhil's suggestions > Please split the patches as below. > 1. introduce driver - create files with meson.build and with probe/remove > and device ops defined but not implemented. > You do not need to write empty functions. > Add basic documentation also which defines what the driver is. > You can explain the build dependency here. > 2. define queue structs and setup/remove APIs > 3. Add data path > 4. implement cipher op. Add capabilities and documentation of what is > supported in each of the patches. Add feature flags etc. > 5. implement auth, add capabilities and documentation > 6. test app changes. > > Update in v2: > Change uadk_supported_platform to uadk_crypto_version, which matches > better > than platform. > enum uadk_crypto_version { > UADK_CRYPTO_V2, > UADK_CRYPTO_V3, > }; > > Update in v1, compared with rfc > > Suggested from Akhil Goyal <gak...@marvell.com> > Only consider crypto PMD first > Split patch into small (individually compiled) patches. > Update MAINTAINERS and doc/guides/cryptodevs/features/uadk.ini > > Zhangfei Gao (6): > crypto/uadk: introduce uadk crypto driver > crypto/uadk: support basic operations > crypto/uadk: support enqueue/dequeue operations > crypto/uadk: support cipher algorithms > crypto/uadk: support auth algorithms > test/crypto: support uadk PMD > > MAINTAINERS | 6 + > app/test/meson.build | 1 + > app/test/test_cryptodev.c | 7 + > app/test/test_cryptodev.h | 1 + > doc/guides/cryptodevs/features/uadk.ini | 55 + > doc/guides/cryptodevs/index.rst | 1 + > doc/guides/cryptodevs/uadk.rst | 96 ++ > doc/guides/rel_notes/release_22_11.rst | 6 + > drivers/crypto/meson.build | 1 + > drivers/crypto/uadk/meson.build | 30 + > drivers/crypto/uadk/uadk_crypto_pmd.c | 1081 +++++++++++++++++ > drivers/crypto/uadk/uadk_crypto_pmd_private.h | 79 ++ > drivers/crypto/uadk/version.map | 3 + > 13 files changed, 1367 insertions(+) > create mode 100644 doc/guides/cryptodevs/features/uadk.ini > create mode 100644 doc/guides/cryptodevs/uadk.rst > create mode 100644 drivers/crypto/uadk/meson.build > create mode 100644 drivers/crypto/uadk/uadk_crypto_pmd.c > create mode 100644 drivers/crypto/uadk/uadk_crypto_pmd_private.h > create mode 100644 drivers/crypto/uadk/version.map
Series Applied to dpdk-next-crypto Welcome to dpdk. Thanks.