Chapter 2. Configuring RoCE
This section explains background information about RDMA over Converged Ethernet (RoCE), as well as how to change the default RoCE version. Also, how to configure a software RoCE adapter.
Note that there are different vendors, such as Mellanox, Broadcom, and QLogic, who provide RoCE hardware.
2.1. Overview of RoCE protocol versions
RoCE is a network protocol that enables remote direct memory access (RDMA) over Ethernet.
The following are the different RoCE versions:
- RoCE v1
The RoCE version 1 protocol is an Ethernet link layer protocol with ethertype
0x8915that enables the communication between any two hosts in the same Ethernet broadcast domain.
- RoCE v2
The RoCE version 2 protocol exists on the top of either the UDP over IPv4 or the UDP over IPv6 protocol. For RoCE v2, the UDP destination port number is
The RDMA_CM sets up a reliable connection between a client and a server for transferring data. RDMA_CM provides an RDMA transport-neutral interface for establishing connections. The communication uses a specific RDMA device and message-based data transfers.
Using different versions like RoCE v2 on the client and RoCE v1 on the server is not supported. In such a case, configure both the server and client to communicate over RoCE v1.
2.2. Temporarily changing the default RoCE version
Using the RoCE v2 protocol on the client and RoCE v1 on the server is not supported. If the hardware in your server only supports RoCE v1, configure your clients to communicate with the server using RoCE v1. This section describes how to enforce RoCE v1 on the client that uses the
mlx5_0 driver for the Mellanox ConnectX-5 Infiniband device.
Note that the changes described in this section are only temporary until you reboot the host.
- The client uses an InfiniBand device with RoCE v2 protocol
- The server uses an InfiniBand device that only supports RoCE v1
# mkdir /sys/kernel/config/rdma_cm/mlx5_0/
Display the default RoCE mode:
# cat /sys/kernel/config/rdma_cm/mlx5_0/ports/1/default_roce_mode RoCE v2
Change the default RoCE mode to version 1:
# echo "IB/RoCE v1" > /sys/kernel/config/rdma_cm/mlx5_0/ports/1/default_roce_mode
2.3. Configuring Soft-RoCE
Soft-RoCE is a software implementation of remote direct memory access (RDMA) over Ethernet, which is also called RXE. Use Soft-RoCE on hosts without RoCE host channel adapters (HCA).
The Soft-RoCE feature is provided as a Technology Preview only. Technology Preview features are not supported with Red Hat production Service Level Agreements (SLAs), might not be functionally complete, and Red Hat does not recommend using them for production. These previews provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process.
See Technology Preview Features Support Scope on the Red Hat Customer Portal for information about the support scope for Technology Preview features.
- An Ethernet adapter is installed
yuminstall iproute libibverbs libibverbs-utils infiniband-diags
Display the RDMA links:
# rdma link show
rdma_rxekernel module and add a new
rxe0that uses the
# rdma link add rxe0 type rxe netdev enp1s0
View the state of all RDMA links:
# rdma link show link rxe0/1 state ACTIVE physical_state LINK_UP netdev enp1s0
List the available RDMA devices:
# ibv_devices device node GUID ------ ---------------- rxe0 505400fffed5e0fb
You can use the
ibstatutility to display a detailed status:
# ibstat rxe0 CA 'rxe0' CA type: Number of ports: 1 Firmware version: Hardware version: Node GUID: 0x505400fffed5e0fb System image GUID: 0x0000000000000000 Port 1: State: Active Physical state: LinkUp Rate: 100 Base lid: 0 LMC: 0 SM lid: 0 Capability mask: 0x00890000 Port GUID: 0x505400fffed5e0fb Link layer: Ethernet