Message sequence number while responding to a retried read request

Mellanox as an initiator sends 4 RDMA read request requesting 16KB of data each. The responder send the RDMA_read_responses for all the 4 read requests. (split in multiple packets as First/middle/last).

Mellanox retries the first RDMA read request with 4KB data (partial retry, assuming that it had accepted only 12KB of responses successfully ).

The responder resends the remaining 4KB data.

The doubt I have is that what should be the message sequence number(MSN) of the response for the retried partial read request ( 4KB ).

As the responder has already responded to all the 4 read requests before it received the retried partial request, it had increased its MSN to 4.

While responding to the retried partial request, should be MSN be rolled back to 1 or should the responder send the read response with the last MSN i.e 4 ?

Mellanox HCA behaves according to IB spec. For additional details, please refer to InfiniBand specification , 9.7.7.1 “Generating MSN Value”.