freenode
Kernel & Low-Level

Linux RDMA core gains Ultra Ethernet reliable unconnected verbs

Eric Davis of Broadcom proposes the generic uverbs ABI so UET devices can land without reinventing jobs, wide keys, and ready-to-send queue pairs in every driver.

The Linux RDMA core is being extended for Ultra Ethernet's reliable unconnected transport, a model that does not fit today's InfiniBand and RoCE user verbs.

Ultra Ethernet lets a queue pair send to any peer in a job without establishing a connection. Incoming traffic is demultiplexed on a JobID, ordering is weaker and device-specific, and peers are named by both network address and a full 32-bit queue pair number. None of that has a home in the current ABI.

Eric Davis of Broadcom posted a thirteen-part series for rdma-next that adds the generic half: the objects, methods, and attributes any UET device would implement. No driver ships in the series, though Davis notes two already target the ABI, a full reference model and HPE's Slingshot driver for a large subset. Device-specific behavior, he argues, should stay on private vendor interfaces.

The work introduces UET UDP and UET IP as GID types so a port can hold both UET and RoCE identities, with the transport following from the GID assigned to a queue pair. It adds the IB_QPT_RU type, capability bits for 64-bit immediates and keys, caller-chosen keys, and memory-region access restrictions, plus queries for job, job-key, and address-table limits.

Jobs and job keys become first-class objects. A job owns the JobID and a peer address table; a job key binds that job to a protection domain and authorizes queue pairs. Jobs can be exported as file descriptors so an unprivileged process can join one prepared for it.

Because an unconnected transport has nothing to negotiate, create can take the attributes that modify-to-RTS would have supplied and apply them once the pair exists. Memory registration gains job binding, derived regions, optional 64-bit keys, and the ability to attach a region to a single queue pair so the network reaches it only over that path.

New attributes are optional. Existing userspace is unaffected, and a device that lacks a feature reports it absent rather than failing.