linux/ena: report SOF_TIMESTAMPING_RAW_HARDWARE for RX timestamping capabilities#371
Open
5prairie wants to merge 1 commit into
Open
linux/ena: report SOF_TIMESTAMPING_RAW_HARDWARE for RX timestamping capabilities#3715prairie wants to merge 1 commit into
5prairie wants to merge 1 commit into
Conversation
…apabilities The driver reports SOF_TIMESTAMPING_TX_HARDWARE together with SOF_TIMESTAMPING_RAW_HARDWARE for TX timestamping, but for RX it only advertises SOF_TIMESTAMPING_RX_HARDWARE. According to the kernel timestamping documentation [1], SOF_TIMESTAMPING_*_HARDWARE flags control timestamp generation, while SOF_TIMESTAMPING_RAW_HARDWARE controls reporting of hardware timestamps to userspace. In practice, both are required to fully describe hardware timestamping capabilities: one to indicate that timestamps are generated in hardware, and the other to indicate that they are exposed to user space. By omitting SOF_TIMESTAMPING_RAW_HARDWARE from RX capabilities, the reported feature set is inconsistent with TX and may cause userspace to incorrectly assume that RX hardware timestamps are not available. This is not purely theoretical: some userspace components (e.g. libpcap [2]) check only for SOF_TIMESTAMPING_RAW_HARDWARE when deciding whether to enable adapter-level timestamping. As a result, RX hardware timestamping may be silently unused even when supported by the device. Report SOF_TIMESTAMPING_RAW_HARDWARE for RX as well to accurately reflect the device capabilities and align RX reporting with TX. [1] https://docs.kernel.org/networking/timestamping.html [2] https://github.com/the-tcpdump-group/libpcap/blob/master/pcap-linux.c#L5097
79c4bc4 to
ccce229
Compare
Contributor
|
Hi @5prairie |
Contributor
|
Hi @5prairie Apologies for the delay in the response. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
The driver reports SOF_TIMESTAMPING_TX_HARDWARE together with SOF_TIMESTAMPING_RAW_HARDWARE for TX timestamping, but for RX it only advertises SOF_TIMESTAMPING_RX_HARDWARE.
According to the kernel timestamping documentation [1], SOF_TIMESTAMPING_*_HARDWARE flags control timestamp generation, while SOF_TIMESTAMPING_RAW_HARDWARE controls reporting of hardware timestamps to userspace. In practice, both are required to fully describe hardware timestamping capabilities: one to indicate that timestamps are generated in hardware, and the other to indicate that they are exposed to user space.
By omitting SOF_TIMESTAMPING_RAW_HARDWARE from RX capabilities, the reported feature set is inconsistent with TX and may cause userspace to incorrectly assume that RX hardware timestamps are not available.
This is not purely theoretical: some userspace components (e.g. libpcap [2]) check only for SOF_TIMESTAMPING_RAW_HARDWARE when deciding whether to enable adapter-level timestamping. As a result, RX hardware timestamping may be silently unused even when supported by the device.
Report SOF_TIMESTAMPING_RAW_HARDWARE for RX as well to accurately reflect the device capabilities and align RX reporting with TX.
[1] https://docs.kernel.org/networking/timestamping.html
[2] https://github.com/the-tcpdump-group/libpcap/blob/master/pcap-linux.c#L5097