mbox series

[v4,00/15] add OCTEON TX2 inline IPsec support

Message ID 1580815045-32132-1-git-send-email-anoobj@marvell.com (mailing list archive)
Headers
Series add OCTEON TX2 inline IPsec support |

Message

Anoob Joseph Feb. 4, 2020, 11:17 a.m. UTC
  This series adds inline IPsec support in OCTEON TX2 PMD.

In the inbound path, rte_flow framework need to be used to configure
the NPC block, which does the h/w lookup. The packets would get
processed by the crypto block and would submit to the scheduling block,
SSO. So inline IPsec mode can be enabled only when traffic is received
via event device using Rx adapter.

In the outbound path, the core would submit to the crypto block and the
crypto block would submit the packet for Tx internally.

v4:
* Reverted meson.build file edit in patch 14/15

v3:
* Moved ethdev security ops to net/octeontx2
* Segregated all security related code in common to
  common/octeontx2/otx2_sec* files
* Segregated all security related control code in net to
  net/octeontx2/otx2_ethdev_sec* files
* Claimed maintainership for all files added above
* Added support for AES-CBC

v2:
* Minimized additions to common/octeontx2
* Updated release notes
* Renamed otx2_is_ethdev to otx2_ethdev_is_sec_capable

Ankur Dwivedi (3):
  net/octeontx2: add eth security capabilities
  net/octeontx2: add datapath ops in eth security ctx
  net/octeontx2: add inline Tx path changes

Anoob Joseph (4):
  common/octeontx2: add CPT LF mbox for inline inbound
  net/octeontx2: create eth security ctx
  crypto/octeontx2: enable CPT to share QP with ethdev
  net/octeontx2: add eth security session operations

Archana Muniganti (3):
  net/octeontx2: add lookup mem changes to hold sa indices
  drivers/octeontx2: add sec in Rx fastpath framework
  drivers/octeontx2: add sec in Tx fastpath framework

Tejasree Kondoj (3):
  crypto/octeontx2: configure for inline IPsec
  net/octeontx2: add security in eth dev configure
  net/octeontx2: add inline ipsec Rx path changes

Vamsi Attunuru (2):
  common/octeontx2: add routine to check if sec capable otx2
  net/octeontx2: sync inline tag type

 MAINTAINERS                                        |   6 +
 doc/guides/nics/octeontx2.rst                      |  20 +
 doc/guides/rel_notes/release_20_02.rst             |   9 +
 drivers/common/octeontx2/Makefile                  |   1 +
 drivers/common/octeontx2/meson.build               |   1 +
 drivers/common/octeontx2/otx2_common.h             |   4 +
 drivers/common/octeontx2/otx2_mbox.h               |   7 +
 drivers/common/octeontx2/otx2_sec_idev.c           | 183 +++++
 drivers/common/octeontx2/otx2_sec_idev.h           |  37 +
 .../octeontx2/rte_common_octeontx2_version.map     |   6 +
 drivers/crypto/octeontx2/Makefile                  |   6 +-
 drivers/crypto/octeontx2/meson.build               |   4 +
 .../crypto/octeontx2/otx2_cryptodev_hw_access.h    |  22 +-
 drivers/crypto/octeontx2/otx2_cryptodev_mbox.c     |  54 ++
 drivers/crypto/octeontx2/otx2_cryptodev_mbox.h     |   7 +
 drivers/crypto/octeontx2/otx2_cryptodev_ops.c      |  56 ++
 drivers/crypto/octeontx2/otx2_cryptodev_qp.h       |  35 +
 drivers/crypto/octeontx2/otx2_ipsec_fp.h           | 350 +++++++++
 drivers/event/octeontx2/Makefile                   |   1 +
 drivers/event/octeontx2/meson.build                |   2 +
 drivers/event/octeontx2/otx2_evdev.c               | 170 +++--
 drivers/event/octeontx2/otx2_evdev.h               |   4 +-
 drivers/event/octeontx2/otx2_worker.c              |   6 +-
 drivers/event/octeontx2/otx2_worker.h              |   6 +
 drivers/event/octeontx2/otx2_worker_dual.c         |   6 +-
 drivers/net/octeontx2/Makefile                     |   4 +
 drivers/net/octeontx2/meson.build                  |   7 +-
 drivers/net/octeontx2/otx2_ethdev.c                |  38 +-
 drivers/net/octeontx2/otx2_ethdev.h                |   2 +
 drivers/net/octeontx2/otx2_ethdev_devargs.c        |  19 +
 drivers/net/octeontx2/otx2_ethdev_sec.c            | 844 +++++++++++++++++++++
 drivers/net/octeontx2/otx2_ethdev_sec.h            | 139 ++++
 drivers/net/octeontx2/otx2_ethdev_sec_tx.h         | 181 +++++
 drivers/net/octeontx2/otx2_flow.c                  |  26 +
 drivers/net/octeontx2/otx2_lookup.c                |  11 +-
 drivers/net/octeontx2/otx2_rx.c                    |  27 +-
 drivers/net/octeontx2/otx2_rx.h                    | 377 ++++++---
 drivers/net/octeontx2/otx2_tx.c                    |  29 +-
 drivers/net/octeontx2/otx2_tx.h                    | 271 +++++--
 39 files changed, 2696 insertions(+), 282 deletions(-)
 create mode 100644 drivers/common/octeontx2/otx2_sec_idev.c
 create mode 100644 drivers/common/octeontx2/otx2_sec_idev.h
 create mode 100644 drivers/crypto/octeontx2/otx2_cryptodev_qp.h
 create mode 100644 drivers/crypto/octeontx2/otx2_ipsec_fp.h
 create mode 100644 drivers/net/octeontx2/otx2_ethdev_sec.c
 create mode 100644 drivers/net/octeontx2/otx2_ethdev_sec.h
 create mode 100644 drivers/net/octeontx2/otx2_ethdev_sec_tx.h
  

Comments

Akhil Goyal Feb. 4, 2020, 4:10 p.m. UTC | #1
> 
> This series adds inline IPsec support in OCTEON TX2 PMD.
> 
> In the inbound path, rte_flow framework need to be used to configure
> the NPC block, which does the h/w lookup. The packets would get
> processed by the crypto block and would submit to the scheduling block,
> SSO. So inline IPsec mode can be enabled only when traffic is received
> via event device using Rx adapter.
> 
> In the outbound path, the core would submit to the crypto block and the
> crypto block would submit the packet for Tx internally.
> 
> v4:
> * Reverted meson.build file edit in patch 14/15
> 
> v3:
> * Moved ethdev security ops to net/octeontx2
> * Segregated all security related code in common to
>   common/octeontx2/otx2_sec* files
> * Segregated all security related control code in net to
>   net/octeontx2/otx2_ethdev_sec* files
> * Claimed maintainership for all files added above
> * Added support for AES-CBC
> 
> v2:
> * Minimized additions to common/octeontx2
> * Updated release notes
> * Renamed otx2_is_ethdev to otx2_ethdev_is_sec_capable
> 
> Ankur Dwivedi (3):
>   net/octeontx2: add eth security capabilities
>   net/octeontx2: add datapath ops in eth security ctx
>   net/octeontx2: add inline Tx path changes
> 
> Anoob Joseph (4):
>   common/octeontx2: add CPT LF mbox for inline inbound
>   net/octeontx2: create eth security ctx
>   crypto/octeontx2: enable CPT to share QP with ethdev
>   net/octeontx2: add eth security session operations
> 
> Archana Muniganti (3):
>   net/octeontx2: add lookup mem changes to hold sa indices
>   drivers/octeontx2: add sec in Rx fastpath framework
>   drivers/octeontx2: add sec in Tx fastpath framework
> 
> Tejasree Kondoj (3):
>   crypto/octeontx2: configure for inline IPsec
>   net/octeontx2: add security in eth dev configure
>   net/octeontx2: add inline ipsec Rx path changes
> 
> Vamsi Attunuru (2):
>   common/octeontx2: add routine to check if sec capable otx2
>   net/octeontx2: sync inline tag type
> 
>  MAINTAINERS                                        |   6 +
>  doc/guides/nics/octeontx2.rst                      |  20 +
>  doc/guides/rel_notes/release_20_02.rst             |   9 +
>  drivers/common/octeontx2/Makefile                  |   1 +
>  drivers/common/octeontx2/meson.build               |   1 +
>  drivers/common/octeontx2/otx2_common.h             |   4 +
>  drivers/common/octeontx2/otx2_mbox.h               |   7 +
>  drivers/common/octeontx2/otx2_sec_idev.c           | 183 +++++
>  drivers/common/octeontx2/otx2_sec_idev.h           |  37 +
>  .../octeontx2/rte_common_octeontx2_version.map     |   6 +
>  drivers/crypto/octeontx2/Makefile                  |   6 +-
>  drivers/crypto/octeontx2/meson.build               |   4 +
>  .../crypto/octeontx2/otx2_cryptodev_hw_access.h    |  22 +-
>  drivers/crypto/octeontx2/otx2_cryptodev_mbox.c     |  54 ++
>  drivers/crypto/octeontx2/otx2_cryptodev_mbox.h     |   7 +
>  drivers/crypto/octeontx2/otx2_cryptodev_ops.c      |  56 ++
>  drivers/crypto/octeontx2/otx2_cryptodev_qp.h       |  35 +
>  drivers/crypto/octeontx2/otx2_ipsec_fp.h           | 350 +++++++++
>  drivers/event/octeontx2/Makefile                   |   1 +
>  drivers/event/octeontx2/meson.build                |   2 +
>  drivers/event/octeontx2/otx2_evdev.c               | 170 +++--
>  drivers/event/octeontx2/otx2_evdev.h               |   4 +-
>  drivers/event/octeontx2/otx2_worker.c              |   6 +-
>  drivers/event/octeontx2/otx2_worker.h              |   6 +
>  drivers/event/octeontx2/otx2_worker_dual.c         |   6 +-
>  drivers/net/octeontx2/Makefile                     |   4 +
>  drivers/net/octeontx2/meson.build                  |   7 +-
>  drivers/net/octeontx2/otx2_ethdev.c                |  38 +-
>  drivers/net/octeontx2/otx2_ethdev.h                |   2 +
>  drivers/net/octeontx2/otx2_ethdev_devargs.c        |  19 +
>  drivers/net/octeontx2/otx2_ethdev_sec.c            | 844
> +++++++++++++++++++++
>  drivers/net/octeontx2/otx2_ethdev_sec.h            | 139 ++++
>  drivers/net/octeontx2/otx2_ethdev_sec_tx.h         | 181 +++++
>  drivers/net/octeontx2/otx2_flow.c                  |  26 +
>  drivers/net/octeontx2/otx2_lookup.c                |  11 +-
>  drivers/net/octeontx2/otx2_rx.c                    |  27 +-
>  drivers/net/octeontx2/otx2_rx.h                    | 377 ++++++---
>  drivers/net/octeontx2/otx2_tx.c                    |  29 +-
>  drivers/net/octeontx2/otx2_tx.h                    | 271 +++++--
>  39 files changed, 2696 insertions(+), 282 deletions(-)
>  create mode 100644 drivers/common/octeontx2/otx2_sec_idev.c
>  create mode 100644 drivers/common/octeontx2/otx2_sec_idev.h
>  create mode 100644 drivers/crypto/octeontx2/otx2_cryptodev_qp.h
>  create mode 100644 drivers/crypto/octeontx2/otx2_ipsec_fp.h
>  create mode 100644 drivers/net/octeontx2/otx2_ethdev_sec.c
>  create mode 100644 drivers/net/octeontx2/otx2_ethdev_sec.h
>  create mode 100644 drivers/net/octeontx2/otx2_ethdev_sec_tx.h
> 
Applied to dpdk-next-crypto

Thanks.