-
Notifications
You must be signed in to change notification settings - Fork 53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(nebula_hw_interfaces): better UDP socket #231
base: main
Are you sure you want to change the base?
Conversation
Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
…o everywhere Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
…down Signed-off-by: Max SCHMELLER <[email protected]>
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #231 +/- ##
==========================================
+ Coverage 26.10% 27.03% +0.93%
==========================================
Files 100 103 +3
Lines 9218 9435 +217
Branches 2215 2318 +103
==========================================
+ Hits 2406 2551 +145
- Misses 6423 6446 +23
- Partials 389 438 +49
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚨 Try these New Features:
|
Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
… feat/better-udp-socket
…received Signed-off-by: Max SCHMELLER <[email protected]>
Unit tests have been written, but things like querying |
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:
auto sock = UdpSocket().init(...).bind().subscribe(...);
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