Skip to content

Custom tun#772

Open
LeeSmet wants to merge 11 commits intomasterfrom
custom_tun
Open

Custom tun#772
LeeSmet wants to merge 11 commits intomasterfrom
custom_tun

Conversation

@LeeSmet
Copy link
Contributor

@LeeSmet LeeSmet commented Feb 24, 2026

Initial implementation of a custom tun crate with some specifics to better suite the mycelium project

Closes #211
Closes #213

Signed-off-by: Lee Smet <lee.smet@hotmail.com>
This allows proper simultaneous reading and writing to the interface, in
parallel

Signed-off-by: Lee Smet <lee.smet@hotmail.com>
Signed-off-by: Lee Smet <lee.smet@hotmail.com>
Signed-off-by: Lee Smet <lee.smet@hotmail.com>
Signed-off-by: Lee Smet <lee.smet@hotmail.com>
edition 2024, reference license file

Signed-off-by: Lee Smet <lee.smet@hotmail.com>
Throughput increased from 1.30Gbit/s to 1.60Gbit/s average on my dev
laptop, though this is likely because we now use a dedicated task for
reading and writing, which allows parallel reads and writes.

Signed-off-by: Lee Smet <lee.smet@hotmail.com>
Signed-off-by: Lee Smet <lee.smet@hotmail.com>
Signed-off-by: Lee Smet <lee.smet@hotmail.com>
Adds backpressure compared to the unbounded channel. Prevents the TUN
reads from outpacing the Dataplane operation, which would lead to
increased latency and potential OOM. Now the data will be accumulated in
kernel buffers, and eventually get dropped.

Signed-off-by: Lee Smet <lee.smet@hotmail.com>
Signed-off-by: Lee Smet <lee.smet@hotmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Create custom tun crate See if adding ipv6 on linux tun can be done with ioctls only

1 participant