wireguard-windows: packets dropped in NativeTun Read()

Gopakumar Choorakkot Edakkunni gopakumar.c.e at gmail.com
Wed Aug 25 19:05:19 UTC 2021


I am experimenting with wintun as the choice of my driver for a vpn
client I am writing on windows. I was very quickly able to get
bootstrapped using the wireguard-windows repository (thanks!!), I
created a tunnel and when I use the Read() api (tun_windows.go), I see
that quite often I am missing packets. How do I know this ? - I run a
tshark on the tun interface (needs editpcap to convert from ethernet
to ip format), and then I compare packets there with what I get, and I
see my read missing packets present in wireshark.

The traffic rate is very low - just regular browsing to websites, no
major traffic. I am reading from the tun interface from a goroutine, I
suspected maybe I/O bound reads might be not scheduled enough by go
scheduler, so I increased the go threads. I thought maybe the ring
size need to increase so I made it 32Mb etc.. - still no good, I still
get Rx packets missing. Kind of clueless at this point - any
pointers/hints/suggestions will be appreciated a lot !!


More information about the WireGuard mailing list