-
Notifications
You must be signed in to change notification settings - Fork 24
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
LLT-5886: Protected RTT QoS pings #1058
Conversation
e5ec181
to
64aeacc
Compare
64aeacc
to
117a340
Compare
117a340
to
66b544c
Compare
66b544c
to
04560c4
Compare
04560c4
to
9ee5468
Compare
9ee5468
to
410bc9d
Compare
7312c7f
to
24ab2d8
Compare
24ab2d8
to
0c14764
Compare
d7451b8
to
8f7fd10
Compare
8f7fd10
to
ce97ddd
Compare
ce97ddd
to
eda58ee
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very nice PR.
I checked out the telio-sockets/protector/*
and it doesn't contain the information of what it does except the apple.rs
which mentions what it tries to do.
While we're at it, would it be possible to add a brief comment into protector.rs
about it's purpose?
Anyway, that's not a blocker :) +1
eda58ee
to
fec01aa
Compare
Also added rust docs to the protector module. |
In order to add SocketPool, Pinger had to be broken out of telio-utils because of circular dependencies. LinkDetection had to be also updated to use the new Pinger.
fec01aa
to
fe7235c
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1.0
Problem
Due to the nature of Apple's NetworkExtension control protocol, packets originating from the NetworkExtension process are routed outside of the tunnel.
Because of this on macOS AppStore and iOS platforms, raw ICMP packets from QoS RTT and Link detection components destined for the tunnel interface, leave the main interface instead.
Solution
Use the
SocketPool
component in order to bind the ping raw socket to the tunnel interface. The Pinger component had to moved into it's own crate in order to avoid circular dependencies between Utils and Sockets.LinkDetection component was also updated to use the new Pinger.
☑️ Definition of Done checklist