Currently, with high throughput workloads, the Linux implementation struggles to get beyond ~ 1.3 Gbps of throughput (could be marginally more with nothing but rust-tun).
This could be improved by implementing GRO and GSO for TCP and UDP packets, which has been added and benchmarked by Tailscale in the TUN driver of wireguard-go, leading to significant improvements in throughput, as described in the following articles:
Currently, with high throughput workloads, the Linux implementation struggles to get beyond ~ 1.3 Gbps of throughput (could be marginally more with nothing but rust-tun).
This could be improved by implementing GRO and GSO for TCP and UDP packets, which has been added and benchmarked by Tailscale in the TUN driver of wireguard-go, leading to significant improvements in throughput, as described in the following articles:
This would be a non-trivial change, but I might take it on later this year, as I would really love to use it in quincy, which uses rust-tun.
This relates to https://github.com/M0dEx/quincy/issues/10