RDMA device selection for the verbs (MODE_VERBS) transport. Ignored for
TCP clients. One (device, gid_idx) per CX7 adapter: a dual-rail client
requests N rails and the peer registers each layer mmap on every rail so
the client can stripe expert fetches across both adapters. The default is
a SINGLE rail (roceP2p1s0f1, RoCEv2 GID index 3) — the pre-dual-rail
behavior, unchanged for verify_verbs.sh; add a second --rail to serve
dual-rail clients.
The server’s half of the verbs handshake (RO dialect: expert / weight /
LoRA tiers): its QP identity plus, per MoE layer (or per shard), the base
virtual address + rkey of that entry’s registered MR.
remote_addr(layer, expert) = layers[layer].0 + expert * record_stride.
Read want per-rail VerbsServerParams framed by a leading [u8 n_rails].
Bails if the framed count is zero, absurd (> 8), or != want — the client
already negotiated want rails, so any other count is a protocol error.
Frame N per-rail VerbsServerParams for the dual-rail RO tiers: a leading
[u8 n_rails] count followed by each rail’s params — exactly how the RW
blade frames its per-rail CacheServerParams. Single-rail (n == 1) is the
default, byte-for-byte the pre-dual-rail path plus the one-byte count prefix.