-
- Downloads
Soft RoCE driver
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 ins user space requires the inclusion of librxe as a device specifics plug-in to libibverbs. librxe is packaged separately. Architecture: +-----------------------------------------------------------+ | Application | +-----------------------------------------------------------+ +-----------------------------------+ | libibverbs | User +-----------------------------------+ +----------------+ +----------------+ | librxe | | HW RoCE lib | +----------------+ +----------------+ +---------------------------------------------------------------+ +--------------+ +------------+ | Sockets | | RDMA ULP | +--------------+ +------------+ +--------------+ +---------------------+ | TCP/IP | | ib_core | +--------------+ +---------------------+ +------------+ +----------------+ Kernel | ib_rxe | | HW RoCE driver | +------------+ +----------------+ +------------------------------------+ | NIC driver | +------------------------------------+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +-----------------------------------------------------------+ | Application | +-----------------------------------------------------------+ +-----------------------------------+ | libibverbs | User +-----------------------------------+ +----------------+ +----------------+ | librxe | | HW RoCE lib | +----------------+ +----------------+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +--------------+ +------------+ | Sockets | | RDMA ULP | +--------------+ +------------+ +--------------+ +---------------------+ | TCP/IP | | ib_core | +--------------+ +---------------------+ +------------+ +----------------+ Kernel | ib_rxe | | HW RoCE driver | +------------+ +----------------+ +------------------------------------+ | NIC driver | +------------------------------------+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 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 [3] https://github.com/SoftRoCE/librxe-dev - Soft RoCE userspace library Signed-off-by:Kamal Heib <kamalh@mellanox.com> Signed-off-by:
Amir Vadai <amirv@mellanox.com> Signed-off-by:
Moni Shoua <monis@mellanox.com> Reviewed-by:
Haggai Eran <haggaie@mellanox.com> Signed-off-by:
Doug Ledford <dledford@redhat.com>
Showing
- MAINTAINERS 9 additions, 0 deletionsMAINTAINERS
- drivers/infiniband/Kconfig 1 addition, 0 deletionsdrivers/infiniband/Kconfig
- drivers/infiniband/sw/Makefile 1 addition, 0 deletionsdrivers/infiniband/sw/Makefile
- drivers/infiniband/sw/rxe/Kconfig 24 additions, 0 deletionsdrivers/infiniband/sw/rxe/Kconfig
- drivers/infiniband/sw/rxe/Makefile 24 additions, 0 deletionsdrivers/infiniband/sw/rxe/Makefile
- drivers/infiniband/sw/rxe/rxe.c 386 additions, 0 deletionsdrivers/infiniband/sw/rxe/rxe.c
- drivers/infiniband/sw/rxe/rxe.h 77 additions, 0 deletionsdrivers/infiniband/sw/rxe/rxe.h
- drivers/infiniband/sw/rxe/rxe_av.c 98 additions, 0 deletionsdrivers/infiniband/sw/rxe/rxe_av.c
- drivers/infiniband/sw/rxe/rxe_comp.c 734 additions, 0 deletionsdrivers/infiniband/sw/rxe/rxe_comp.c
- drivers/infiniband/sw/rxe/rxe_cq.c 165 additions, 0 deletionsdrivers/infiniband/sw/rxe/rxe_cq.c
- drivers/infiniband/sw/rxe/rxe_dma.c 166 additions, 0 deletionsdrivers/infiniband/sw/rxe/rxe_dma.c
- drivers/infiniband/sw/rxe/rxe_hdr.h 952 additions, 0 deletionsdrivers/infiniband/sw/rxe/rxe_hdr.h
- drivers/infiniband/sw/rxe/rxe_icrc.c 96 additions, 0 deletionsdrivers/infiniband/sw/rxe/rxe_icrc.c
- drivers/infiniband/sw/rxe/rxe_loc.h 286 additions, 0 deletionsdrivers/infiniband/sw/rxe/rxe_loc.h
- drivers/infiniband/sw/rxe/rxe_mcast.c 190 additions, 0 deletionsdrivers/infiniband/sw/rxe/rxe_mcast.c
- drivers/infiniband/sw/rxe/rxe_mmap.c 173 additions, 0 deletionsdrivers/infiniband/sw/rxe/rxe_mmap.c
- drivers/infiniband/sw/rxe/rxe_mr.c 643 additions, 0 deletionsdrivers/infiniband/sw/rxe/rxe_mr.c
- drivers/infiniband/sw/rxe/rxe_net.c 708 additions, 0 deletionsdrivers/infiniband/sw/rxe/rxe_net.c
- drivers/infiniband/sw/rxe/rxe_net.h 53 additions, 0 deletionsdrivers/infiniband/sw/rxe/rxe_net.h
- drivers/infiniband/sw/rxe/rxe_opcode.c 961 additions, 0 deletionsdrivers/infiniband/sw/rxe/rxe_opcode.c
Loading