[core] Fixed bonding packet timestamping #1796
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
A more safe and straightforward fix of the issue with timestamping packets for bonding, compared to #1767.
The proposed fix
Use
srctime
for all member links, instead of using thesrctime
value set by the first member link which has successfully sent a packet.The issue
The source time of a packet is stored as the number of microseconds since the SRT internal clock epoch.
However internal clock accuracy might be higher than 1 μs (e.g. 1 ns).
Therefore, the value returned in
MSG_CTRL::src_time
may have a lower accuracy compared to the actual time point used to timestamp a packet.In the case of group sender, in particular, this may result in 1 μs timestamp difference of the same packet, sent over several links. The first link will use internal clock accuracy, while other links will have a μs accuracy of the
src_time
.Example: