3.1.4.5 RDMA Write to Peer Buffer

When the upper layer modifies a remote peer buffer, it passes:

  • The implementation-defined representation of the Connection.

  • The local buffer whose contents are to be written to the peer.

  • An array of one or more Buffer Descriptor V1 structures describing the remote peer buffer as obtained from the peer in an upper-layer operation on the Connection.

  • An Offset into the remote peer buffer indicating the first byte of the target subsegment to be written.

The operation MUST use the provided Offset to index into the provided array of Buffer Descriptor V1 structure elements by consuming the elements’ Length fields to identify the first Buffer Descriptor V1 structure to use. It MUST then use the length of the provided buffer to determine how many Buffer Descriptor V1 structure elements describe the targeted remote peer buffer locations. It MUST adjust the Offset and Length fields of the first element to indicate the trailing subsegment of the first peer buffer segment, and MUST adjust the Length field of the last element to indicate the leading subsegment of the last peer buffer segment.

The operation MUST use implementation-specific means to request that the RDMA provider perform one or more RDMA Write operations to transfer data from the memory locations indicated by the buffer, to the remote peer memory locations described by the Buffer Descriptor V1 structure elements calculated in the previous step, on the specified Connection. The result of the operation from the RDMA provider MUST be provided to the upper layer.