2.2.43 SMB2_RDMA_TRANSFORM

The SMB2_RDMA_TRANSFORM is used by the client or server to send/receive transformed RDMA payload in READ/WRITE operations. The SMB2_RDMA_TRANSFORM is optional and only valid for the SMB 3.1.1 dialect when connection supports RDMA transform.<88>


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

RdmaDescriptorOffset

RdmaDescriptorLength

Channel

TransformCount

Reserved1

Reserved2

RdmaDescriptorOffset (2 bytes): This field contains the offset, in bytes, from the beginning of this structure to the RDMA descriptors as specified by the Channel field.

RdmaDescriptorLength (2 bytes): This field contains the length, in bytes, of the RDMA descriptors as specified by the Channel field.

Channel (4 bytes): This field MUST contain exactly one of the following values:

Value

Meaning

SMB2_CHANNEL_NONE

0x00000000

No channel information is present. The RdmaDescriptorOffset and RdmaDescriptorLength fields MUST be set to zero by the sender and MUST be ignored by the receiver.

SMB2_CHANNEL_RDMA_V1

0x00000001

One or more SMB_DIRECT_BUFFER_DESCRIPTOR_V1 structures as specified in [MS-SMBD] section 2.2.3.1 are present in the channel information specified by the RdmaDescriptorOffset and RdmaDescriptorLength fields.

SMB2_CHANNEL_RDMA_V1_INVALIDATE

0x00000002

One or more SMB_DIRECT_BUFFER_DESCRIPTOR_V1 structures as specified in [MS-SMBD] section 2.2.3.1 are present in the channel information specified by the RdmaDescriptorOffset and RdmaDescriptorLength fields. The server is requested to perform remote invalidation when responding to the request as specified in [MS-SMBD] section 3.1.4.2.

TransformCount (2 bytes): This field specifies the number of transforms present after this structure. This value MUST be greater than 0.

Reserved1 (2 bytes): This field MUST NOT be used and MUST be reserved. The sender MUST set this to zero, and the receiver MUST ignore it on receipt.

Reserved2 (4 bytes): This field MUST NOT be used and MUST be reserved. The sender MUST set this to zero, and the receiver MUST ignore it on receipt.