Our customer expects the messages initiated by multiple cores to be delivered to the same destination in the order in which they were initiated, but see later initiated a message being delivered before delivery of the earlier initiated a message is completed.
All messages transmitted by all cores are single packet messages with the same mailbox and letter.
Section 2.3.3.3 "Message Passing Software Requirements" in the SRIO User's Guide (SPRUGW1C) describes as follows:
"The only true way to ensure in-order message delivery is to explicitly use the same mailbox and letter combination between two endpoints using the same deviceIDs. This ensures in-order delivery (barring any error conditions) as a message is sent out only after the previous one has completed."
"Higher performance in-order DSP-to-DSP delivery is possible under the following restrictions. Because the TX queues are based on priority, reordering is not done by the fabric or peripheral’s physical layer, thus in-order delivery to a given DestID can be done by using the same TX queue even when the first available letter is used."
"In this case, only logical layer retries can cause messages to be received out of order.
The following must be obeyed to prevent the occurrence of logical layer retries:
• Ensure that the RX free descriptor queues are never empty.
• Do not exceed the limitation of 16 open segmentation contexts in the RXU."
Is it required that all messages transmitted by all cores use the same TX queue?
Do the requirements to prevent the occurrence of logical layer retries apply to the TX operation as well as the RX operation?
If the requirements also apply to the TX operation, why is that? Does that relate to the TX response handling?
Best regards,
Daisuke