In an eventdev world, multiple workers (with ordered queue) will be working on IPsec ESP processing. The ESP header's sequence number is unique and has to be sequentially incremented in an orderly manner. This rises a need for incrementing sequence number in crypto stage especially in event crypto adapter. By adding a user callback to cryptodev at enqueue burst, the user callback will get executed in the context of event crypto adapter. This helps the application to increment the ESP sequence number atomically and orderly manner.
v3->v4: -Move callback init and cleanup under dev_configure -Update with memory ordering -Removed extra level of indirection -Add documentation v2->v3: -Moved RCU under the cryptodev APIs -RCU is maintained per queue-pair -Changed name of few variables -Updated callback test with negative cases -Updated with required changes for meson v1->v2: -Moved callback related members to the end of cryptodev struct -Added support for RCU Abhinandan Gujjar (3): cryptodev: support enqueue callback functions test: add testcase for crypto enqueue callback doc: add enqueue callback APIs app/test/test_cryptodev.c | 133 +++++++++++++- config/rte_config.h | 1 + doc/guides/prog_guide/cryptodev_lib.rst | 22 +++ doc/guides/rel_notes/release_20_11.rst | 5 + lib/librte_cryptodev/meson.build | 2 +- lib/librte_cryptodev/rte_cryptodev.c | 230 +++++++++++++++++++++++++ lib/librte_cryptodev/rte_cryptodev.h | 158 ++++++++++++++++- lib/librte_cryptodev/rte_cryptodev_version.map | 2 + 8 files changed, 549 insertions(+), 4 deletions(-) -- 1.9.1