mirror of
https://github.com/versity/versitygw.git
synced 2026-10-22 14:22:40 +00:00
The hipobj-rc-v2 server chooses its HCA as "the first verbs device that opens", or the first whose GID begins with --rc-gid-hint. Neither works on a storage node with more than one RDMA adapter. Enumeration order is not a fabric choice, and the hint compares only the first four GID bytes: every port's GID 0 is link-local, so an InfiniBand HCA and a RoCE NIC on the same host both match fe:80:0:0, and IPv4- mapped RoCE GIDs all match 0:0:0:0. We hit this on a node with two ConnectX-6 IB ports and two Broadcom RoCE ports: the gateway silently bound bnxt_re0 (link_layer Ethernet, LID 0, no path to the clients on the IB fabric) and every RC session timed out in the data phase with nothing in the log to say why. Add --rc-device / VGW_RC_DEVICE, plumbed through DeviceOpts.DevName and rc_device_opts.dev_name, that filters the device list by ibv_device.name before the GID-hint match. It takes precedence over the hint; the hint still applies within the named device. The failure message now names the device that was asked for.