[PATCH rdma-next 00/13] Elastic Fabric Adapter (EFA) driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello all,
The following patchset introduces the Elastic Fabric Adapter (EFA) driver, that
was pre-announced by Amazon [1].

EFA is a networking adapter designed to support user space network
communication, initially offered in the Amazon EC2 environment. First release
of EFA supports datagram send/receive operations and does not support
connection-oriented or read/write operations.

EFA supports unreliable datagrams (UD) as well as a new unordered, scalable
reliable datagram protocol (SRD). SRD provides support for reliable datagrams
and more complete error handling than typical RD, but, unlike RD, it does not
support ordering nor segmentation. A new queue pair type, IB_QPT_SRD, is added
to expose this new queue pair type.
User verbs are supported via a dedicated userspace libfabric provider.
Kernel verbs and in-kernel services are initially not supported.

EFA enabled EC2 instances have two different devices allocated, one for ENA
(netdev) and one for EFA, the two are separate pci devices with no in-kernel
communication between them.

Thanks,
Gal

[1] https://aws.amazon.com/about-aws/whats-new/2018/11/introducing-elastic-fabric-adapter/

Gal Pressman (13):
  RDMA: Add EFA related definitions
  RDMA/efa: Add EFA device definitions
  RDMA/efa: Add the PCI device id definitions
  RDMA/efa: Add the efa.h header file
  RDMA/efa: Add the efa_com.h file
  RDMA/efa: Add the com service API definitions
  RDMA/efa: Add the ABI definitions
  RDMA/efa: Implement functions that submit and complete admin commands
  RDMA/efa: Add com command handlers
  RDMA/efa: Add bitmap allocation service
  RDMA/efa: Add EFA verbs implementation
  RDMA/efa: Add the efa module
  RDMA/efa: Add driver to Kconfig/Makefile

 MAINTAINERS                                     |    8 +
 drivers/infiniband/Kconfig                      |    2 +
 drivers/infiniband/core/verbs.c                 |    2 +
 drivers/infiniband/hw/Makefile                  |    1 +
 drivers/infiniband/hw/efa/Kconfig               |   14 +
 drivers/infiniband/hw/efa/Makefile              |    8 +
 drivers/infiniband/hw/efa/efa.h                 |  191 +++
 drivers/infiniband/hw/efa/efa_admin_cmds_defs.h |  783 ++++++++++
 drivers/infiniband/hw/efa/efa_admin_defs.h      |  135 ++
 drivers/infiniband/hw/efa/efa_bitmap.c          |   76 +
 drivers/infiniband/hw/efa/efa_com.c             | 1122 ++++++++++++++
 drivers/infiniband/hw/efa/efa_com.h             |  139 ++
 drivers/infiniband/hw/efa/efa_com_cmd.c         |  544 +++++++
 drivers/infiniband/hw/efa/efa_com_cmd.h         |  217 +++
 drivers/infiniband/hw/efa/efa_common_defs.h     |   17 +
 drivers/infiniband/hw/efa/efa_main.c            |  669 +++++++++
 drivers/infiniband/hw/efa/efa_pci_id_tbl.h      |   25 +
 drivers/infiniband/hw/efa/efa_regs_defs.h       |  117 ++
 drivers/infiniband/hw/efa/efa_verbs.c           | 1827 +++++++++++++++++++++++
 include/rdma/ib_verbs.h                         |    9 +-
 include/uapi/rdma/efa-abi.h                     |   89 ++
 21 files changed, 5993 insertions(+), 2 deletions(-)
 create mode 100644 drivers/infiniband/hw/efa/Kconfig
 create mode 100644 drivers/infiniband/hw/efa/Makefile
 create mode 100644 drivers/infiniband/hw/efa/efa.h
 create mode 100644 drivers/infiniband/hw/efa/efa_admin_cmds_defs.h
 create mode 100644 drivers/infiniband/hw/efa/efa_admin_defs.h
 create mode 100644 drivers/infiniband/hw/efa/efa_bitmap.c
 create mode 100644 drivers/infiniband/hw/efa/efa_com.c
 create mode 100644 drivers/infiniband/hw/efa/efa_com.h
 create mode 100644 drivers/infiniband/hw/efa/efa_com_cmd.c
 create mode 100644 drivers/infiniband/hw/efa/efa_com_cmd.h
 create mode 100644 drivers/infiniband/hw/efa/efa_common_defs.h
 create mode 100644 drivers/infiniband/hw/efa/efa_main.c
 create mode 100644 drivers/infiniband/hw/efa/efa_pci_id_tbl.h
 create mode 100644 drivers/infiniband/hw/efa/efa_regs_defs.h
 create mode 100644 drivers/infiniband/hw/efa/efa_verbs.c
 create mode 100644 include/uapi/rdma/efa-abi.h

-- 
2.7.4




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux