• Chuck Lever's avatar
    xprtrdma: Plant XID in on-the-wire RDMA offset (FRWR) · 0a93fbcb
    Chuck Lever authored
    Place the associated RPC transaction's XID in the upper 32 bits of
    each RDMA segment's rdma_offset field. There are two reasons to do
    this:
    
    - The R_key only has 8 bits that are different from registration to
      registration. The XID adds more uniqueness to each RDMA segment to
      reduce the likelihood of a software bug on the server reading from
      or writing into memory it's not supposed to.
    
    - On-the-wire RDMA Read and Write requests do not otherwise carry
      any identifier that matches them up to an RPC. The XID in the
      upper 32 bits will act as an eye-catcher in network captures.
    Suggested-by: default avatarTom Talpey <ttalpey@microsoft.com>
    Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    Signed-off-by: default avatarAnna Schumaker <Anna.Schumaker@Netapp.com>
    0a93fbcb
rpc_rdma.c 36.6 KB