Documentation
¶
Overview ¶
Package hostclient implements the client side of the cuObject RDMA DC protocol using libibverbs + mlx5 direct verbs, with no CUDA/GPU dependency.
It is the host-memory counterpart to the GPU-based NVIDIA libcuobjclient: it registers host memory, exposes a passive DC target the gateway can RDMA READ/WRITE, and produces the RDMA descriptor token the gateway expects in the S3 request headers.
Index ¶
Constants ¶
const DefaultDCKey uint64 = 0xffeeddcc
DefaultDCKey is the cuObjServer default Dynamic Connection key. The client DC target must use a key matching the server's DCKey tunable.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client owns a passive DC target endpoint and a single registered host buffer. A Client is not safe for concurrent use.
func NewClient ¶
NewClient opens the RDMA device and builds the DC target endpoint. dev selects the device by name (e.g. "mlx5_0"); empty picks the first. port is the HCA port (usually 1). gidIndex selects the RoCE GID (see `ibv_devinfo -v`). dcKey must match the server's DCKey (DefaultDCKey by default).
func (*Client) BufferAddr ¶
BufferAddr returns the virtual address of the registered buffer. This is the remote base address the gateway uses as the RDMA start offset; it matches the address encoded in Token.
func (*Client) Close ¶
func (c *Client) Close()
Close releases the buffer and tears down the endpoint.