[v7,0/2] support enqueue & dequeue callbacks on cryptodev

Message ID 20201222144243.552262-1-abhinandan.gujjar@intel.com (mailing list archive)


Gujjar, Abhinandan S Dec. 22, 2020, 2:42 p.m. UTC
  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.
The user callback at the dequeue burst helps IPsec application to
take care of ARW processing.

    -Fixed issues in documentation
    -Generated patch set with updated system time
    -Updated to call dequeue callbacks after HW dequeue
    -Updated release notes for 21.02

    -Removed error code in remove callback APIs & cb init
    -Updated release notes & documentation

    -Added dequeue callback APIs
    -Updated documentation
    -Updated errno and return values
    -Updated cleanup function

    -Move callback init and cleanup under dev_configure
    -Update with memory ordering
    -Removed extra level of indirection
    -Add documentation

    -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

    -Moved callback related members to the end of cryptodev struct
    -Added support for RCU

Abhinandan Gujjar (2):
  cryptodev: support enqueue and dequeue callback functions
  test: add testcase for crypto enqueue and dequeue callback

 app/test/test_cryptodev.c               | 244 ++++++++++++++-
 config/rte_config.h                     |   1 +
 doc/guides/prog_guide/cryptodev_lib.rst |  44 +++
 doc/guides/rel_notes/release_21_02.rst  |   9 +
 lib/librte_cryptodev/meson.build        |   2 +-
 lib/librte_cryptodev/rte_cryptodev.c    | 398 +++++++++++++++++++++++-
 lib/librte_cryptodev/rte_cryptodev.h    | 246 ++++++++++++++-
 lib/librte_cryptodev/version.map        |   7 +
 8 files changed, 944 insertions(+), 7 deletions(-)