[PATCH rdma-next 00/29] Soft RoCE driver

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

 



Hi Doug,

Soft RoCE (RXE) - The software RoCE driver 

ib_rxe implements the RDMA transport and registers to the RDMA core device as a
kernel verbs provider. It also implements the packet IO layer. On the other hand
ib_rxe registers to the Linux netdev stack as a udp encapsulating protocol, in
that case RDMA, for sending and receiving packets over any Ethernet device.
This yields a RDMA transport over the UDP/Ethernet network layer forming a RoCEv2
compatible device.

The configuration procedure of the Soft RoCE drivers requires binding to any existing
Ethernet network device. This is done with /sys interface.

A userspace Soft RoCE library (librxe) provides user applications the ability to run
with Soft RoCE devices.  The use of rxe verbs in user space requires the inclusion of
librxe as a device specific plug-in to libibverbs. librxe is packaged separately.

Soft RoCE was previously pushed to drivers/infiniband/staging and now, after cleanups
and bug fixes is pushed to the hardware provides section in the RDMA stack.

Soft RoCE resources:

[1] https://github.com/SoftRoCE/librxe-dev librxe - source code in Github

[2] https://github.com/SoftRoCE/rxe-dev/wiki/rxe-dev:-Home - Soft RoCE Wiki page

Moni Shoua (29):
  IB/rxe: IBA header types and methods
  IB/rxe: Bit mask and lengths declaration for different opcodes
  IB/rxe: Default rxe device and port parameters
  IB/rxe: External interface to lower level modules
  IB/rxe: Misc local interfaces between files
  IB/rxe: Add maintainer for rxe driver
  IB/rxe: Work request's opcode information table
  IB/rxe: User/kernel shared queues infrastructure
  IB/rxe: Common user/kernel queue implementation
  IB/rxe: Interface to ib_core
  IB/rxe: Allocation pool for RDMA objects
  IB/rxe: RXE tasks handling
  IB/rxe: Address vector manipulation functions
  IB/rxe: Shared Receive Queue (SRQ) manipulation functions
  IB/rxe: Completion Queue (CQ) manipulation functions
  IB/rxe: Queue Pair (QP) handling
  IB/rxe: Memory Region (MR) manioulation
  IB/rxe: Add multicast infrastructure
  IB/rxe: Received packets handling
  IB/rxe: Completion handling
  IB/rxe: QP request handling
  IB/rxe: QP response handling
  IB/rxe: Dummy DMA callbacks for RXE device
  IB/rxe: Invariant CRC implementation
  IB/rxe: Module init hooks
  IB/rxe: Interface to netdev stack
  IB/rxe: sysfs interface to RXE
  IB/rxe: Shared objects between user and kernel
  IB/rxe: Add Soft-RoCE to kbuild and makefiles

 MAINTAINERS                            |    9 +
 drivers/infiniband/Kconfig             |    1 +
 drivers/infiniband/hw/Makefile         |    1 +
 drivers/infiniband/hw/rxe/Kconfig      |   23 +
 drivers/infiniband/hw/rxe/Makefile     |   24 +
 drivers/infiniband/hw/rxe/rxe.c        |  455 +++++++++++
 drivers/infiniband/hw/rxe/rxe.h        |   74 ++
 drivers/infiniband/hw/rxe/rxe_av.c     |   98 +++
 drivers/infiniband/hw/rxe/rxe_comp.c   |  734 +++++++++++++++++
 drivers/infiniband/hw/rxe/rxe_cq.c     |  165 ++++
 drivers/infiniband/hw/rxe/rxe_dma.c    |  166 ++++
 drivers/infiniband/hw/rxe/rxe_hdr.h    |  952 ++++++++++++++++++++++
 drivers/infiniband/hw/rxe/rxe_icrc.c   |   96 +++
 drivers/infiniband/hw/rxe/rxe_loc.h    |  289 +++++++
 drivers/infiniband/hw/rxe/rxe_mcast.c  |  190 +++++
 drivers/infiniband/hw/rxe/rxe_mmap.c   |  173 ++++
 drivers/infiniband/hw/rxe/rxe_mr.c     |  679 ++++++++++++++++
 drivers/infiniband/hw/rxe/rxe_net.c    |  753 ++++++++++++++++++
 drivers/infiniband/hw/rxe/rxe_net.h    |   78 ++
 drivers/infiniband/hw/rxe/rxe_opcode.c |  961 ++++++++++++++++++++++
 drivers/infiniband/hw/rxe/rxe_opcode.h |  128 +++
 drivers/infiniband/hw/rxe/rxe_param.h  |  173 ++++
 drivers/infiniband/hw/rxe/rxe_pool.c   |  510 ++++++++++++
 drivers/infiniband/hw/rxe/rxe_pool.h   |  164 ++++
 drivers/infiniband/hw/rxe/rxe_qp.c     |  851 ++++++++++++++++++++
 drivers/infiniband/hw/rxe/rxe_queue.c  |  217 +++++
 drivers/infiniband/hw/rxe/rxe_queue.h  |  178 +++++
 drivers/infiniband/hw/rxe/rxe_recv.c   |  420 ++++++++++
 drivers/infiniband/hw/rxe/rxe_req.c    |  675 ++++++++++++++++
 drivers/infiniband/hw/rxe/rxe_resp.c   | 1364 ++++++++++++++++++++++++++++++++
 drivers/infiniband/hw/rxe/rxe_srq.c    |  195 +++++
 drivers/infiniband/hw/rxe/rxe_sysfs.c  |  151 ++++
 drivers/infiniband/hw/rxe/rxe_task.c   |  154 ++++
 drivers/infiniband/hw/rxe/rxe_task.h   |   95 +++
 drivers/infiniband/hw/rxe/rxe_verbs.c  | 1352 +++++++++++++++++++++++++++++++
 drivers/infiniband/hw/rxe/rxe_verbs.h  |  486 ++++++++++++
 include/uapi/rdma/Kbuild               |    1 +
 include/uapi/rdma/ib_rxe.h             |  139 ++++
 38 files changed, 13174 insertions(+)
 create mode 100644 drivers/infiniband/hw/rxe/Kconfig
 create mode 100644 drivers/infiniband/hw/rxe/Makefile
 create mode 100644 drivers/infiniband/hw/rxe/rxe.c
 create mode 100644 drivers/infiniband/hw/rxe/rxe.h
 create mode 100644 drivers/infiniband/hw/rxe/rxe_av.c
 create mode 100644 drivers/infiniband/hw/rxe/rxe_comp.c
 create mode 100644 drivers/infiniband/hw/rxe/rxe_cq.c
 create mode 100644 drivers/infiniband/hw/rxe/rxe_dma.c
 create mode 100644 drivers/infiniband/hw/rxe/rxe_hdr.h
 create mode 100644 drivers/infiniband/hw/rxe/rxe_icrc.c
 create mode 100644 drivers/infiniband/hw/rxe/rxe_loc.h
 create mode 100644 drivers/infiniband/hw/rxe/rxe_mcast.c
 create mode 100644 drivers/infiniband/hw/rxe/rxe_mmap.c
 create mode 100644 drivers/infiniband/hw/rxe/rxe_mr.c
 create mode 100644 drivers/infiniband/hw/rxe/rxe_net.c
 create mode 100644 drivers/infiniband/hw/rxe/rxe_net.h
 create mode 100644 drivers/infiniband/hw/rxe/rxe_opcode.c
 create mode 100644 drivers/infiniband/hw/rxe/rxe_opcode.h
 create mode 100644 drivers/infiniband/hw/rxe/rxe_param.h
 create mode 100644 drivers/infiniband/hw/rxe/rxe_pool.c
 create mode 100644 drivers/infiniband/hw/rxe/rxe_pool.h
 create mode 100644 drivers/infiniband/hw/rxe/rxe_qp.c
 create mode 100644 drivers/infiniband/hw/rxe/rxe_queue.c
 create mode 100644 drivers/infiniband/hw/rxe/rxe_queue.h
 create mode 100644 drivers/infiniband/hw/rxe/rxe_recv.c
 create mode 100644 drivers/infiniband/hw/rxe/rxe_req.c
 create mode 100644 drivers/infiniband/hw/rxe/rxe_resp.c
 create mode 100644 drivers/infiniband/hw/rxe/rxe_srq.c
 create mode 100644 drivers/infiniband/hw/rxe/rxe_sysfs.c
 create mode 100644 drivers/infiniband/hw/rxe/rxe_task.c
 create mode 100644 drivers/infiniband/hw/rxe/rxe_task.h
 create mode 100644 drivers/infiniband/hw/rxe/rxe_verbs.c
 create mode 100644 drivers/infiniband/hw/rxe/rxe_verbs.h
 create mode 100644 include/uapi/rdma/ib_rxe.h

-- 
1.8.3.1

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[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