mbox series

[net-next,v2,0/8] cn10k-ipsec: Add outbound inline ipsec support

Message ID 20240513105446.297451-1-bbhushan2@marvell.com (mailing list archive)
Headers show
Series cn10k-ipsec: Add outbound inline ipsec support | expand

Message

Bharat Bhushan May 13, 2024, 10:54 a.m. UTC
This patch series adds outbound inline ipsec support on Marvell
cn10k series of platform. One crypto hardware logical function
(cpt-lf) per netdev is required for inline ipsec outbound
functionality. Software prepare and submit crypto hardware
(CPT) instruction for outbound inline ipsec crypto mode offload.
The CPT instruction have details for encryption and authentication
Crypto hardware encrypt, authenticate and provide the ESP packet
to network hardware logic to transmit ipsec packet.

First patch makes dma memory writable for in-place encryption,
Second patch moves code to common file, Third patch disable
backpressure on crypto (CPT) and network (NIX) hardware.
Patch four onwards enables inline outbound ipsec.

v1->v2:
 - Fix compilation error to build driver a module
 - Use dma_wmb() instead of architecture specific barrier
 - Fix couple of other compilation warnings

Bharat Bhushan (8):
  octeontx2-pf: map skb data as device writeable
  octeontx2-pf: Move skb fragment map/unmap to common code
  octeontx2-af: Disable backpressure between CPT and NIX
  cn10k-ipsec: Initialize crypto hardware for outb inline ipsec
  cn10k-ipsec: Add SA add/delete support for outb inline ipsec
  cn10k-ipsec: Process inline ipsec transmit offload
  cn10k-ipsec: Allow inline ipsec offload for skb with SA
  cn10k-ipsec: Enable outbound inline ipsec offload

 .../net/ethernet/marvell/octeontx2/af/mbox.h  |    4 +
 .../ethernet/marvell/octeontx2/af/rvu_nix.c   |   74 +-
 .../ethernet/marvell/octeontx2/nic/Makefile   |    1 +
 .../marvell/octeontx2/nic/cn10k_ipsec.c       | 1068 +++++++++++++++++
 .../marvell/octeontx2/nic/cn10k_ipsec.h       |  258 ++++
 .../marvell/octeontx2/nic/otx2_common.c       |   80 ++
 .../marvell/octeontx2/nic/otx2_common.h       |   25 +
 .../marvell/octeontx2/nic/otx2_dcbnl.c        |    3 +
 .../ethernet/marvell/octeontx2/nic/otx2_pf.c  |   19 +-
 .../marvell/octeontx2/nic/otx2_txrx.c         |   65 +-
 .../marvell/octeontx2/nic/otx2_txrx.h         |    3 +
 .../ethernet/marvell/octeontx2/nic/otx2_vf.c  |   10 +-
 12 files changed, 1563 insertions(+), 47 deletions(-)
 create mode 100644 drivers/net/ethernet/marvell/octeontx2/nic/cn10k_ipsec.c
 create mode 100644 drivers/net/ethernet/marvell/octeontx2/nic/cn10k_ipsec.h

Comments

Kalesh Anakkur Purayil May 13, 2024, 12:22 p.m. UTC | #1
On Mon, May 13, 2024 at 4:25 PM Bharat Bhushan <bbhushan2@marvell.com> wrote:
>
> This patch series adds outbound inline ipsec support on Marvell
> cn10k series of platform. One crypto hardware logical function
> (cpt-lf) per netdev is required for inline ipsec outbound
> functionality. Software prepare and submit crypto hardware
> (CPT) instruction for outbound inline ipsec crypto mode offload.
> The CPT instruction have details for encryption and authentication
> Crypto hardware encrypt, authenticate and provide the ESP packet
> to network hardware logic to transmit ipsec packet.
>
> First patch makes dma memory writable for in-place encryption,
> Second patch moves code to common file, Third patch disable
> backpressure on crypto (CPT) and network (NIX) hardware.
> Patch four onwards enables inline outbound ipsec.
>
> v1->v2:
>  - Fix compilation error to build driver a module
>  - Use dma_wmb() instead of architecture specific barrier
>  - Fix couple of other compilation warnings

Comments on V1 is not addressed.

Also, please respect the 24h grace period when posting on netdev:

https://elixir.bootlin.com/linux/latest/source/Documentation/process/maintainer-netdev.rst#L399
>
> Bharat Bhushan (8):
>   octeontx2-pf: map skb data as device writeable
>   octeontx2-pf: Move skb fragment map/unmap to common code
>   octeontx2-af: Disable backpressure between CPT and NIX
>   cn10k-ipsec: Initialize crypto hardware for outb inline ipsec
>   cn10k-ipsec: Add SA add/delete support for outb inline ipsec
>   cn10k-ipsec: Process inline ipsec transmit offload
>   cn10k-ipsec: Allow inline ipsec offload for skb with SA
>   cn10k-ipsec: Enable outbound inline ipsec offload
>
>  .../net/ethernet/marvell/octeontx2/af/mbox.h  |    4 +
>  .../ethernet/marvell/octeontx2/af/rvu_nix.c   |   74 +-
>  .../ethernet/marvell/octeontx2/nic/Makefile   |    1 +
>  .../marvell/octeontx2/nic/cn10k_ipsec.c       | 1068 +++++++++++++++++
>  .../marvell/octeontx2/nic/cn10k_ipsec.h       |  258 ++++
>  .../marvell/octeontx2/nic/otx2_common.c       |   80 ++
>  .../marvell/octeontx2/nic/otx2_common.h       |   25 +
>  .../marvell/octeontx2/nic/otx2_dcbnl.c        |    3 +
>  .../ethernet/marvell/octeontx2/nic/otx2_pf.c  |   19 +-
>  .../marvell/octeontx2/nic/otx2_txrx.c         |   65 +-
>  .../marvell/octeontx2/nic/otx2_txrx.h         |    3 +
>  .../ethernet/marvell/octeontx2/nic/otx2_vf.c  |   10 +-
>  12 files changed, 1563 insertions(+), 47 deletions(-)
>  create mode 100644 drivers/net/ethernet/marvell/octeontx2/nic/cn10k_ipsec.c
>  create mode 100644 drivers/net/ethernet/marvell/octeontx2/nic/cn10k_ipsec.h
>
> --
> 2.34.1
>
>