Commit Graph
2 Commits
Author SHA1 Message Date
Kyeongpyo Kim fd3864d135 cuobjclient: select GID index 0 on InfiniBand ports in the host client
select_gid encodes a RoCE preference order: skip zero and link-local
entries, prefer a RoCEv2 non-IPv4-mapped GID, fall back to IPv4-mapped
v2 and then v1. That order has nothing to pick on a native InfiniBand
port. The only populated entry is index 0, the port GID formed from the
subnet prefix and the port GUID, and it is link-local by construction
(fe80::/10), so the loop discards it and the session fails with "no
usable GID found ... set VGWRDMA_GID_INDEX", even though index 0 is the
one and only correct choice. Every IB user has to hard-code
VGWRDMA_GID_INDEX=0.

Check port_attr.link_layer, which ibv_query_port already returns here,
and take index 0 on IBV_LINK_LAYER_INFINIBAND before the RoCE scan.
RoCE ports are unaffected. Reword the failure message so it no longer
tells IB users to look for a "RoCE GID index", and update the env var
documentation in cuobjclient.

Verified on a ConnectX-6 native IB port (GID table: index 0 =
fe80::…, 1-3 zero): the host client now auto-selects index 0 and
PUT/GET complete against a hipobj/cuObject gateway without the env var;
unpatched it fails at session init with the message above.
2026-09-27 02:34:26 +09:00
Ben McClelland 62c6787a17 feat: add new vgwrdma service for cuObject compatible server 2026-08-04 08:48:17 -07:00