Ecosyste.ms: OpenCollective
An open API service for software projects hosted on Open Collective.
github.com/SagerNet/wireguard-go
Mirror only. Official repository is at https://git.zx2c4.com/wireguard-go
https://github.com/SagerNet/wireguard-go
9a439356a62e4f8f00a832080ed5b7c1e465d6e9 authored about 1 year ago by 世界 <[email protected]>
ec6c8445bf1a2ba1862210b5b662bb95cc7ce99e authored about 1 year ago by 世界 <[email protected]>
a30019116b9f3962a557ea99d0aad80fdf87728b authored about 1 year ago by 世界 <[email protected]>
(cherry picked from commit 7c2acadba17cadf8a1df957c49e1333130d460ad)
(cherry picked from commit ...
5f7fc8c601510cb03404a31eb3fe813b1b48ddbd authored about 1 year ago by 世界 <[email protected]>
385196d6c0ceb44bb4b6f4030a72d82b9b766da8 authored about 1 year ago by 世界 <[email protected]>
ae0d9cd681696cf1f3524961984bee5ed5e0b4ca authored about 1 year ago by 世界 <[email protected]>
cb07ee7c84660c07f8bb1a7437de12b23fc9d8d3 authored about 1 year ago by 世界 <[email protected]>
9b4bbdb3cd6c3e7306194cd0be1a18cb98dd727a authored about 1 year ago by 世界 <[email protected]>
c72a7becee1aa604fbc9039d0995f9bad093f3c1 authored about 1 year ago by 世界 <[email protected]>
GRO requires big allocations to be efficient. This isn't great, as there
might be Android memory...
Otherwise in the event that we're using GSO without sticky sockets, we
pass garbage OOB buffers ...
Signed-off-by: Jason A. Donenfeld <[email protected]>
f502ec3fad116d11109529bcf283e464f4822c18 authored about 1 year ago by Jason A. Donenfeld <[email protected]>Android wants GSO but not sticky.
Signed-off-by: Jason A. Donenfeld <[email protected]>
5d37bd24e14e3fff6c1ce61e299480beb3d68c00 authored about 1 year ago by Jason A. Donenfeld <[email protected]>
Otherwise GRO gets enabled on Android, but the conn doesn't use it,
resulting in bundled packets...
This allows a kernel to support UDP_GRO while not supporting
UDP_SEGMENT.
Signed-off-by: Jason ...
177caa7e4419d1b95bbf0423f6be6230c7101504 authored about 1 year ago by Jason A. Donenfeld <[email protected]>
Signed-off-by: James Tucker <[email protected]>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4...
Close closes the events channel, resulting in a panic from send on
closed channel.
Reported-By:...
ec8f6f82c20c617a3ea94478f2b5e4d49c6d3c2c authored about 1 year ago by James Tucker <[email protected]>
Queue{In,Out}boundElement locking can contribute to significant
overhead via sync.Mutex.lockSlow...
After reducing UDP stack traversal overhead via GSO and GRO,
runtime.chanrecv() began to account...
IPv4 header and pseudo header checksums were being computed on every
merge operation. Additional...
$ benchstat old.txt new.txt
goos: linux
goarch: amd64
pkg: golang.zx2c4.com/wireguard/tun
cpu: 1...
StdNetBind probes for UDP GSO and GRO support at runtime. UDP GSO is
dependent on checksum offlo...
Signed-off-by: Dimitri Papadopoulos Orfanos <[email protected]...
469159ecf7d108dc1d44f8789dedbb463b7bd3a6 authored over 1 year ago by Dimitri Papadopoulos Orfanos <[email protected]>
Signed-off-by: Brad Fitzpatrick <[email protected]>
Signed-off-by: Jason A. Donenfeld <Jaso...
Signed-off-by: SpringHack <[email protected]>
Signed-off-by: Jason A. Donenfeld <[email protected]>
Replace the src storage inside StdNetEndpoint with a copy of the raw
control message buffer, to ...
If an IPC operation is in flight while close starts, it is possible for
both processes to deadlo...
tcpGRO() was using an incorrect IPv4 more fragments bit mask.
tcpPacketsCanCoalesce() was not d...
052af4a8072bbbd3bfe7edf46fe3c1b350f71f08 authored almost 2 years ago by Jordan Whited <[email protected]>
IP options were not being compared prior to coalescing. They are not
commonly used. Disqualifica...
This results in a more compact structure.
Signed-off-by: Jason A. Donenfeld <[email protected]>
6f895be10d741d138ec240d3c53acf3afde44b6c authored almost 2 years ago by Jason A. Donenfeld <[email protected]>Looks like a simple copy&paste error.
Fixes: 9e2f386 ("conn, device, tun: implement vectorized ...
6a07b2a355f93fb28d37d03ae5f2c0019cdb9943 authored almost 2 years ago by Jason A. Donenfeld <[email protected]>
In 9e2f386 ("conn, device, tun: implement vectorized I/O on Linux"), the
Linux-specific Bind imp...
We can't have the netlink listener socket, so it's not possible to
support it. Plus, android net...
Signed-off-by: Jason A. Donenfeld <[email protected]>
cc20c08c9615edbb31b96c89201bf1b2189fe159 authored almost 2 years ago by Jason A. Donenfeld <[email protected]>
Reviewed-by: Maisem Ali <[email protected]>
Signed-off-by: Jordan Whited <[email protected]...
Reviewed-by: Maisem Ali <[email protected]>
Signed-off-by: Jordan Whited <[email protected]...
We only expect a single control message in the normal case, but this
would loop infinitely if th...
CmsgLen() does not account for data alignment.
Reviewed-by: Adrian Dewhurst <[email protected]...
fff53afca779078061128a5a10c31e67a7919d35 authored almost 2 years ago by Jordan Whited <[email protected]>This always struck me as kind of weird and non-standard.
Signed-off-by: Jason A. Donenfeld <Jas...
0ad14a89f5f9da577dae6a63ad196015e51a0381 authored almost 2 years ago by Jason A. Donenfeld <[email protected]>
Cmsghdr uses uint32 and uint64 on 32-bit and 64-bit respectively for the
Len member, which makes...
This commit updates StdNetBind.BatchSize() to return 1 instead of
IdealBatchSize for non-Linux p...
Enable TCP SACK for the gVisor Stack used in tun/netstack. This can
improve throughput by an ord...
This commit re-slices received control messages in StdNetBind to the
value the OS reports on a s...
If RIO is unavailable, NewWinRingBind() falls back to StdNetBind.
StdNetBind uses x/net/ipv{4,6}...
There's not really a use at the moment for making this configurable, and
once bind_windows.go be...
The conn.Bind UDP sockets' send and receive buffers are now being sized
to 7MB, whereas they wer...
Signed-off-by: Jason A. Donenfeld <[email protected]>
f67c862a2acc500139b8e551f21a1118d3f7427c authored almost 2 years ago by Jason A. Donenfeld <[email protected]>
Implement TCP offloading via TSO and GRO for the Linux tun.Device, which
is made possible by vir...
Accept packet vectors for reading and writing in the tun.Device and
conn.Bind interfaces, so tha...
Signed-off-by: Jason A. Donenfeld <[email protected]>
21636207a6756120f56f836b06c086b627f7b911 authored almost 2 years ago by Jason A. Donenfeld <[email protected]>For some reason, this was omitted for response messages.
Reported-by: z <[email protected]>
Fixes...
Signed-off-by: Jordan Whited <[email protected]>
Signed-off-by: Jason A. Donenfeld <Jason@zx2...
Signed-off-by: Jason A. Donenfeld <[email protected]>
ebbd4a433088a06277b7e7bc6e13322c167d5554 authored almost 2 years ago by Jason A. Donenfeld <[email protected]>
This seems like a much better demonstration as it removes the need for
external components.
Sig...
0ae4b3177cd6867f261ad661bd7bff3a0984ff2b authored almost 2 years ago by Soren L. Hansen <[email protected]>Bump gVisor to a recent known-good version.
Signed-off-by: Colin Adler <[email protected]>
...
Signed-off-by: Jason A. Donenfeld <[email protected]>
bb719d3a6e2cd20ec00f26d65c0073c1dde6b529 authored over 2 years ago by Jason A. Donenfeld <[email protected]>Without this, `device.Close()` will deadlock.
Signed-off-by: Colin Adler <[email protected]...
fde0a9525ae5be7f6356a410f1bfc52ecc720f85 authored over 2 years ago by Colin Adler <[email protected]>
Signed-off-by: Brad Fitzpatrick <[email protected]>
Signed-off-by: Jason A. Donenfeld <Jaso...
Now that the gvisor deps aren't insane, we can just do this in the main
module.
Signed-off-by: ...
d1d08426b27b57990b1ee6782794f56d2c002aa3 authored over 2 years ago by Jason A. Donenfeld <[email protected]>
To build with go1.19, gvisor needs
99325baf ("Bump gVisor build tags to go1.19").
However gviso...
3381e21b1831457383784bfa1d9839f7fb271da4 authored over 2 years ago by Shengjing Zhu <[email protected]>
Signed-off-by: Brad Fitzpatrick <[email protected]>
Signed-off-by: Jason A. Donenfeld <Jaso...
Use unix.ByteSliceToString in (*NativeTun).nameSlice to convert the
TUNGETIFF ioctl result []byt...
This does bind_std only; other platforms remain.
The remaining alloc per iteration in the Throu...
ef5c587f782d944005971c7ba5da88405f9b000b authored almost 3 years ago by Josh Bleecher Snyder <[email protected]>Signed-off-by: Jason A. Donenfeld <[email protected]>
193cf8d6a5d6b8844d7f9b33b2d0ecb46098255e authored almost 3 years ago by Jason A. Donenfeld <[email protected]>Signed-off-by: Jason A. Donenfeld <[email protected]>
ee1c8e0e8789e413cca3c1c3464cd3708d518b33 authored almost 3 years ago by Jason A. Donenfeld <[email protected]>Signed-off-by: Jason A. Donenfeld <[email protected]>
95b48cdb3961e69cb1f54a9257e02fa7014339b3 authored almost 3 years ago by Jason A. Donenfeld <[email protected]>Signed-off-by: Jason A. Donenfeld <[email protected]>
5aff28b14c249ef419ca8847c5e935403922fe17 authored almost 3 years ago by Jason A. Donenfeld <[email protected]>Enabled by using Go 1.18. A bit less verbose.
Signed-off-by: Josh Bleecher Snyder <josh@tailsca...
46826fc4e5dcfb472f7ae0c13d2ca65110441f0b authored almost 3 years ago by Josh Bleecher Snyder <[email protected]>Bump go.mod and README.
Switch to upstream net/netip.
Use strings.Cut.
Signed-off-by: Josh Bl...
42c9af45e12dbb2de4d3c273bfc7deeda984f827 authored almost 3 years ago by Josh Bleecher Snyder <[email protected]>
This commit fixes all callsites of netip.AddrFromSlice(), which has
changed its signature and no...
Signed-off-by: Alexander Neumann <[email protected]>
[Jason: don't wrap de...
I'm not 100% sure this is correct, but it certainly is a lot simpler.
Signed-off-by: Jason A. D...
3b95c81cc178f808f63f2782766ecf190afa5157 authored almost 3 years ago by Jason A. Donenfeld <[email protected]>
Provide a PacketConn interface for netstack's ICMP endpoint; netstack
currently only provides Ec...
Signed-off-by: Jason A. Donenfeld <[email protected]>
e0b8f11489c57cbb38b12ae446cf41c4df6ac553 authored almost 3 years ago by Jason A. Donenfeld <[email protected]>
Reported-by: J. Michael McAtee <[email protected]>
Signed-off-by: Jason A. Donenfeld <Jaso...
Signed-off-by: Jason A. Donenfeld <[email protected]>
9c9e7e2724340280d0ca4ff29c067f2d144562c0 authored about 3 years ago by Jason A. Donenfeld <[email protected]>
We missed a function exit point. This was exacerbated by e3134bf
("device: defer state machine t...
The deferred RUnlock calls weren't executing until all peers
had been processed. Add an anonymou...
There is no performance impact.
name old time/op new time/op delt...
4d87c9e8246072d4880e6f198f81ad4675872d86 authored about 3 years ago by Josh Bleecher Snyder <[email protected]>
There are more places where we'll need to add it later, when Go 1.18
comes out with support for ...
A peer.endpoint never becomes nil after being not-nil, so creation is
the only time we actually ...
Signed-off-by: Jason A. Donenfeld <[email protected]>
425f7c726bb6195249e934177d20c54875dda3b2 authored about 3 years ago by Jason A. Donenfeld <[email protected]>Signed-off-by: Jason A. Donenfeld <[email protected]>
fc4f975a4de1917df9d0fe2aaf0e009428546fe2 authored about 3 years ago by Jason A. Donenfeld <[email protected]>Signed-off-by: Jason A. Donenfeld <[email protected]>
9d699ba730bf1be7c9acc0b6a2cb80c3f92f939f authored about 3 years ago by Jason A. Donenfeld <[email protected]>
Signed-off-by: David Anderson <[email protected]>
Signed-off-by: Jason A. Donenfeld <Jason...
Signed-off-by: Jason A. Donenfeld <[email protected]>
e3134bf6659b13bbc4713fe2b9147463cc9ff374 authored about 3 years ago by Jason A. Donenfeld <[email protected]>Signed-off-by: Jason A. Donenfeld <[email protected]>
111e0566dce3fc3489cb75ee40b752b1b738e9c6 authored about 3 years ago by Jason A. Donenfeld <[email protected]>Signed-off-by: Jason A. Donenfeld <[email protected]>
63abb5537bef592fe65ec94801e10a7406314094 authored about 3 years ago by Jason A. Donenfeld <[email protected]>Signed-off-by: Jason A. Donenfeld <[email protected]>
851efb1bb65555e0f765a3361c8eb5ac47435b19 authored about 3 years ago by Jason A. Donenfeld <[email protected]>Signed-off-by: Jason A. Donenfeld <[email protected]>
c07dd60cdb8eb3fc87b63ed0938979e4e4fb6278 authored about 3 years ago by Jason A. Donenfeld <[email protected]>Signed-off-by: Jason A. Donenfeld <[email protected]>
eb6302c7eb71e3e3df9f63395bc5c97dcf0efc84 authored about 3 years ago by Jason A. Donenfeld <[email protected]>
Forgetting to seed the unsafe rng, the jitter before followed a fixed
pattern, which didn't help...
Signed-off-by: Jason A. Donenfeld <[email protected]>
e42c6c4bc2d0d1e6b4f247b98cf4ead8a1b08a2e authored about 3 years ago by Jason A. Donenfeld <[email protected]>
Suggested-by: Adam Bliss <[email protected]>
Signed-off-by: Jason A. Donenfeld <[email protected]>
Update gvisor to v0.0.0-20211020211948-f76a604701b6, which requires some
changes to tun.go:
Wri...
f1f626090e3b30d502ed1baae6b1d86853571a5b authored about 3 years ago by Mikael Magnusson <[email protected]>Signed-off-by: Brad Fitzpatrick <[email protected]>
82e0b734e5d28f96205de65fd2179e08fd91b1db authored about 3 years ago by Brad Fitzpatrick <[email protected]>Signed-off-by: Jason A. Donenfeld <[email protected]>
fdf57a1fa4821c3d82c79325d00f00062ffde699 authored about 3 years ago by Jason A. Donenfeld <[email protected]>Signed-off-by: Jason A. Donenfeld <[email protected]>
f87e87af0d9a2d41e79770cf1422f01f7e8b303d authored about 3 years ago by Jason A. Donenfeld <[email protected]>Only wireguard-windows used this, and it's moving to wgnt exclusively.
Signed-off-by: Jason A. ...
ba9e364dab402cfc104eb00669f7fdfd9259559e authored about 3 years ago by Jason A. Donenfeld <[email protected]>