How to get packet drops notification when using UC queue pair ? There is a PSN in BTH but not (publicly) accessible to user application.

Dear all,

in my use case, a RoCE source embedded in FPGA, is using an UC queue pair. by design, it handles only single sided communication and can only produce RoCE WRITE or WRITE_WITH_IMM packets.

At receiver side, is there a way to notify the CPU of any packet drops ?

The RNIC has some capabilities as it can silently discarded incomplete or out of order packets (in case of message size >MTU that is split in multiple packets) ?

there is an incremented Packet Sequence Number (PSN) in the Base Transport Header (BTH) not (publicly) exposed to user application.

is there a solution, exp_API ?


I cannot use RC que pair.

I do not want to use systematically WRITE_WITH_IMM with an incremented counter. I want to benefits from the internal PSN.

I do not expect data retransmission. Just need notification in CQ or whatever else…


There is no guarantee that the message will be received by responder due to UC QP type.

From IB spec “Completing a message receive”

A failure detected during any of these steps [inbound message completed successfully] may or may not cause the associated WQE to be completed in error. In some cases, such as a missing “first” packet, it is entirely likely that no WQE will be consumed by the responder. Note that, in the presence of errors, it is not possible to guarantee the state of the responder’s memory. Some or all of a given packet may have been committed to the responder’s memory before the error is detected.

In short - software should take care about reliability.