Hi,
In TLPs packet, I found two fields that identify each packet and I can not differentiate between them!
1- Tag [header]
2- Sequence Number
Please what is the difference???
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi,
In TLPs packet, I found two fields that identify each packet and I can not differentiate between them!
1- Tag [header]
2- Sequence Number
Please what is the difference???
Based on the description of PCIe standard specification in PCISIG:
Tag is the number assigned to a given Non-posted Request to distinguish Completions for that Request from other Requests.
Requesters uses the tag field in the completion to associate it with a request TLP of the same tag value it transmitted earlier. Use of a tag in the request and completion TLPs allows a requester to manage multiple outstanding transactions.
The Sequence Number in TLP is added in the Data Link Layer, which is used to detect cases where one or more entire TLPs have been lost.
The Receive Data Link Layer validates received TLPs by checking the Sequence Number, LCRC code and any error indications from the Receive Physical Layer. In case of error in a TLP, Data Link Layer Retry is used for recovery.
Hope the above helps.
Please take a look at section 2.2.6.2 "Transaction ID Field" in PCIe base specification Rev2.0 (which C667x PCIe module complies with).