Open mojomex opened 1 week ago
Attention: Patch coverage is 64.38356%
with 78 lines
in your changes missing coverage. Please review.
Project coverage is 27.03%. Comparing base (
3284357
) to head (205c5dc
). Report is 2 commits behind head on main.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
🚨 Try these New Features:
Unit tests have been written, but things like querying net.core.rmem_max
, or simulating packet loss, is not easily possible in Docker in CI, so test coverage is currently at 75%.
PR Type
Description
The current Boost.ASIO/transport_drivers implementation is bloated and does not offer all the features we need for accurate timing and packet loss measurement. Specifically, a good equivalent to
recvmsg
(seeman recvmsg
for details) is not supported.This PR introduces a new, minimal and robust UDP socket implementation with the following features:
SO_TIMESTAMP
(seeman 7 socket
)SO_RXQ_OVFL
(seeman 7 socket
)*: Depending on the network interface hardware, the timestamp will be measured in hardware on packet arrival, or by the kernel in software as soon as possible after. In any case, the timing is much more accurate than doing it in user space, where scheduling has a huge impact on accuracy.
Usage
I aimed to document the class as well as possible, but still, here is a quick rundown of how to use the socket:
Functions can also be chained like this:
Pre-Review Checklist for the PR Author
PR Author should check the checkboxes below when creating the PR.
Checklist for the PR Reviewer
Reviewers should check the checkboxes below before approval.
Post-Review Checklist for the PR Author
PR Author should check the checkboxes below before merging.
CI Checks