nvme-tcp-offload: Add nvme-tcp-offload - NVMeTCP HW offload ULP
authorShai Malin <smalin@marvell.com>
Wed, 2 Jun 2021 18:42:39 +0000 (21:42 +0300)
committerDavid S. Miller <davem@davemloft.net>
Thu, 3 Jun 2021 21:11:21 +0000 (14:11 -0700)
commitf0e8cb6106da27039cdc23ecf5b5a776d7c7e66e
treeab345cd7efe17278fefb30095afbf1a969eb551c
parentae1d9cc31244407710131b7ca531e7a8be3381c2
nvme-tcp-offload: Add nvme-tcp-offload - NVMeTCP HW offload ULP

This patch will present the structure for the NVMeTCP offload common
layer driver. This module is added under "drivers/nvme/host/" and future
offload drivers which will register to it will be placed under
"drivers/nvme/hw".
This new driver will be enabled by the Kconfig "NVM Express over Fabrics
TCP offload commmon layer".
In order to support the new transport type, for host mode, no change is
needed.

Each new vendor-specific offload driver will register to this ULP during
its probe function, by filling out the nvme_tcp_ofld_dev->ops and
nvme_tcp_ofld_dev->private_data and calling nvme_tcp_ofld_register_dev
with the initialized struct.

The internal implementation:
- tcp-offload.h:
  Includes all common structs and ops to be used and shared by offload
  drivers.

- tcp-offload.c:
  Includes the init function which registers as a NVMf transport just
  like any other transport.

Acked-by: Igor Russkikh <irusskikh@marvell.com>
Signed-off-by: Dean Balandin <dbalandin@marvell.com>
Signed-off-by: Prabhakar Kushwaha <pkushwaha@marvell.com>
Signed-off-by: Omkar Kulkarni <okulkarni@marvell.com>
Signed-off-by: Michal Kalderon <mkalderon@marvell.com>
Signed-off-by: Ariel Elior <aelior@marvell.com>
Signed-off-by: Shai Malin <smalin@marvell.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
MAINTAINERS
drivers/nvme/host/Kconfig
drivers/nvme/host/Makefile
drivers/nvme/host/tcp-offload.c [new file with mode: 0644]
drivers/nvme/host/tcp-offload.h [new file with mode: 0644]