All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH rdma-next 00/13] RDMA/core: Ultra Ethernet transport verbs
@ 2026-10-14 22:21 ` Eric Davis
  0 siblings, 0 replies; 60+ messages in thread
From: Eric Davis via B4 Relay @ 2026-10-14 22:21 UTC (permalink / raw)
  To: Jason Gunthorpe, Leon Romanovsky; +Cc: linux-rdma, linux-kernel, Eric Davis

Ultra Ethernet defines a reliable unconnected transport. A queue pair
sends to any peer in its job without a connection, incoming traffic is
demultiplexed on a JobID rather than on a connection, and what a device
orders is far weaker than IB or RoCE and varies between devices. None of
that has a home in the current uverbs ABI.

This series adds the generic half. The objects, methods, and attributes
any UET device implements. No driver is part of it, though two already
exist against this ABI. A reference device model that implements all of
it, and HPE's Slingshot driver implementing a large subset. That is the
argument for ib_core carrying this. What is device specific should come
from private interfaces per vendor.

Patch 1 widens the uverbs object key. The two new core objects would
otherwise leave drivers no free object keys.

Patches 2-4 expose the transport. The two UET encapsulations as GID
types, the capabilities and limits a device advertises, and IB_QPT_RU
with its 32-bit queue pair number.

Patch 5 widens address handles, which an unconnected peer needs since
it is named by both a network address and a queue pair number.

Patch 6 adds a query for what a queue pair type actually orders.

Patch 7 adds jobs and job keys, the objects an unconnected transport
demultiplexes and authorizes on. A job can be exported to a file
descriptor, so an unprivileged process can join one set up for it.

Patches 8-10 let a queue pair be created ready to send, since a
transport with nothing to negotiate gains nothing from the modify
sequence. Patch 8 is a no-functional-change refactor pulling the
attribute copy out of modify_qp. Patch 9 lets create take those
attributes. Patch 10 adds the attributes a reliable unconnected
transport needs.

Patches 11-13 cover memory registration with a job binding, a chosen
key, derived regions, 64-bit keys for devices whose keys do not fit
in 32 bits, and attaching a region to one queue pair so the network
reaches it only over that QP.

New attributes are optional, so existing userspace is unaffected and a
device without a feature reports it absent rather than failing. The
attributes that restrict access are sent mandatory by userspace, so a
kernel that does not know one refuses the request rather than creating
an object with less protection than was asked for.

Tested against a reference device implementing the ABI, and against rxe
to confirm nothing already upstream regressed. The userspace half is a
matching rdma-core series.

Signed-off-by: Eric Davis <eric.davis@broadcom.com>
---
Eric Davis (13):
      RDMA/core: widen the uverbs object key
      RDMA/core: add the UET GID types
      RDMA/core: report the reliable unconnected device capabilities
      RDMA/core: add the reliable unconnected queue pair type
      RDMA/core: extended address handle attributes
      RDMA/core: query the semantics a queue pair type guarantees
      RDMA/core: job and job key objects
      RDMA/uverbs: factor out the queue pair attribute copy
      RDMA/core: create a queue pair ready to send
      RDMA/core: queue pair attributes for unconnected transports
      RDMA/core: extended memory registration
      RDMA/core: 64-bit memory keys
      RDMA/core: attach a memory region to a queue pair

 drivers/infiniband/core/Makefile                  |   3 +-
 drivers/infiniband/core/cache.c                   |  12 +-
 drivers/infiniband/core/cma.c                     |   4 +
 drivers/infiniband/core/device.c                  |  16 +-
 drivers/infiniband/core/nldev.c                   |   4 +
 drivers/infiniband/core/rdma_core.h               |   2 +
 drivers/infiniband/core/restrack.c                |  17 +-
 drivers/infiniband/core/roce_gid_mgmt.c           |   6 +-
 drivers/infiniband/core/user_mad.c                |   4 +-
 drivers/infiniband/core/uverbs.h                  |  16 +
 drivers/infiniband/core/uverbs_cmd.c              | 261 ++++----
 drivers/infiniband/core/uverbs_main.c             |   5 +
 drivers/infiniband/core/uverbs_std_types.c        |  73 ++-
 drivers/infiniband/core/uverbs_std_types_device.c |  73 ++-
 drivers/infiniband/core/uverbs_std_types_job.c    | 763 ++++++++++++++++++++++
 drivers/infiniband/core/uverbs_std_types_mr.c     | 222 ++++++-
 drivers/infiniband/core/uverbs_std_types_qp.c     | 340 +++++++++-
 drivers/infiniband/core/uverbs_uapi.c             |   2 +
 drivers/infiniband/core/verbs.c                   | 109 +++-
 include/rdma/ib_verbs.h                           | 242 ++++++-
 include/rdma/restrack.h                           |   8 +
 include/rdma/uverbs_ioctl.h                       |   4 +-
 include/uapi/rdma/ib_user_ioctl_cmds.h            | 120 ++++
 include/uapi/rdma/ib_user_ioctl_verbs.h           | 100 +++
 include/uapi/rdma/ib_user_verbs.h                 |  25 +
 25 files changed, 2270 insertions(+), 161 deletions(-)
---
base-commit: d37e98844afea39a9614cac0de837701263c90f7
change-id: 20260929-uet-ib-core-d82e941f5e52

Best regards,
--  
Eric Davis <eric.davis@broadcom.com>



^ permalink raw reply	[flat|nested] 60+ messages in thread

end of thread, other threads:[~2026-10-15 21:14 UTC | newest]

Thread overview: 60+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-14 22:21 [PATCH rdma-next 00/13] RDMA/core: Ultra Ethernet transport verbs Eric Davis via B4 Relay
2026-10-14 22:21 ` Eric Davis
2026-10-14 22:21 ` [PATCH rdma-next 01/13] RDMA/core: widen the uverbs object key Eric Davis via B4 Relay
2026-10-14 22:21   ` Eric Davis
2026-10-14 22:29   ` sashiko-bot
2026-10-14 22:21 ` [PATCH rdma-next 02/13] RDMA/core: add the UET GID types Eric Davis via B4 Relay
2026-10-14 22:21   ` Eric Davis
2026-10-14 22:35   ` sashiko-bot
2026-10-15 15:57     ` Eric Davis
2026-10-15 17:33       ` Jason Gunthorpe
2026-10-15 18:57         ` Sean Hefty
2026-10-15 19:54           ` Jason Gunthorpe
2026-10-15 21:14             ` Sean Hefty
2026-10-14 22:21 ` [PATCH rdma-next 03/13] RDMA/core: report the reliable unconnected device capabilities Eric Davis via B4 Relay
2026-10-14 22:21   ` Eric Davis
2026-10-14 22:30   ` sashiko-bot
2026-10-14 22:21 ` [PATCH rdma-next 04/13] RDMA/core: add the reliable unconnected queue pair type Eric Davis via B4 Relay
2026-10-14 22:21   ` Eric Davis
2026-10-14 22:43   ` sashiko-bot
2026-10-15 16:07     ` Eric Davis
2026-10-15 16:09       ` Eric Davis
2026-10-15 17:30         ` Jason Gunthorpe
2026-10-15 18:35           ` Doug Ledford
2026-10-14 22:21 ` [PATCH rdma-next 05/13] RDMA/core: extended address handle attributes Eric Davis via B4 Relay
2026-10-14 22:21   ` Eric Davis
2026-10-14 22:50   ` sashiko-bot
2026-10-15 16:15     ` Eric Davis
2026-10-15 17:30       ` Jason Gunthorpe
2026-10-14 22:21 ` [PATCH rdma-next 06/13] RDMA/core: query the semantics a queue pair type guarantees Eric Davis via B4 Relay
2026-10-14 22:21   ` Eric Davis
2026-10-14 22:34   ` sashiko-bot
2026-10-15 16:18     ` Eric Davis
2026-10-14 22:21 ` [PATCH rdma-next 07/13] RDMA/core: job and job key objects Eric Davis via B4 Relay
2026-10-14 22:21   ` Eric Davis
2026-10-14 22:36   ` sashiko-bot
2026-10-14 22:21 ` [PATCH rdma-next 08/13] RDMA/uverbs: factor out the queue pair attribute copy Eric Davis via B4 Relay
2026-10-14 22:21   ` Eric Davis
2026-10-14 22:30   ` sashiko-bot
2026-10-14 22:21 ` [PATCH rdma-next 09/13] RDMA/core: create a queue pair ready to send Eric Davis via B4 Relay
2026-10-14 22:21   ` Eric Davis
2026-10-14 22:39   ` sashiko-bot
2026-10-14 22:21 ` [PATCH rdma-next 10/13] RDMA/core: queue pair attributes for unconnected transports Eric Davis via B4 Relay
2026-10-14 22:21   ` Eric Davis
2026-10-14 22:41   ` sashiko-bot
2026-10-15 16:21     ` Eric Davis
2026-10-14 22:21 ` [PATCH rdma-next 11/13] RDMA/core: extended memory registration Eric Davis via B4 Relay
2026-10-14 22:21   ` Eric Davis
2026-10-14 22:36   ` sashiko-bot
2026-10-14 22:21 ` [PATCH rdma-next 12/13] RDMA/core: 64-bit memory keys Eric Davis via B4 Relay
2026-10-14 22:21   ` Eric Davis
2026-10-14 22:32   ` sashiko-bot
2026-10-14 22:21 ` [PATCH rdma-next 13/13] RDMA/core: attach a memory region to a queue pair Eric Davis via B4 Relay
2026-10-14 22:21   ` Eric Davis
2026-10-14 22:37   ` sashiko-bot
2026-10-14 23:57 ` [PATCH rdma-next 00/13] RDMA/core: Ultra Ethernet transport verbs Doug Ledford
2026-10-15  0:08   ` Jason Gunthorpe
2026-10-15  1:02     ` Doug Ledford
2026-10-15 17:29       ` Jason Gunthorpe
2026-10-15 18:22         ` Doug Ledford
2026-10-15 16:27     ` Eric Davis

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.