aboutsummaryrefslogtreecommitdiffstats
path: root/go.sum (follow)
Commit message (Collapse)AuthorAgeFilesLines
* go.mod,tun/netstack: bump gvisorJames Tucker2023-10-101-8/+8
| | | | | Signed-off-by: James Tucker <james@tailscale.com> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* conn, device: use UDP GSO and GRO on LinuxJordan Whited2023-10-101-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | StdNetBind probes for UDP GSO and GRO support at runtime. UDP GSO is dependent on checksum offload support on the egress netdev. UDP GSO will be disabled in the event sendmmsg() returns EIO, which is a strong signal that the egress netdev does not support checksum offload. The iperf3 results below demonstrate the effect of this commit between two Linux computers with i5-12400 CPUs. There is roughly ~13us of round trip latency between them. The first result is from commit 052af4a without UDP GSO or GRO. Starting Test: protocol: TCP, 1 streams, 131072 byte blocks [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-10.00 sec 9.85 GBytes 8.46 Gbits/sec 1139 3.01 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - Test Complete. Summary Results: [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.00 sec 9.85 GBytes 8.46 Gbits/sec 1139 sender [ 5] 0.00-10.04 sec 9.85 GBytes 8.42 Gbits/sec receiver The second result is with UDP GSO and GRO. Starting Test: protocol: TCP, 1 streams, 131072 byte blocks [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-10.00 sec 12.3 GBytes 10.6 Gbits/sec 232 3.15 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - Test Complete. Summary Results: [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.00 sec 12.3 GBytes 10.6 Gbits/sec 232 sender [ 5] 0.00-10.04 sec 12.3 GBytes 10.6 Gbits/sec receiver Reviewed-by: Adrian Dewhurst <adrian@tailscale.com> Signed-off-by: Jordan Whited <jordan@tailscale.com> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* go.mod: bump depsJason A. Donenfeld2023-03-101-6/+6
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* conn, device, tun: implement vectorized I/O on LinuxJordan Whited2023-03-101-6/+6
| | | | | | | | | | | | | | | | | | | | Implement TCP offloading via TSO and GRO for the Linux tun.Device, which is made possible by virtio extensions in the kernel's TUN driver. Delete conn.LinuxSocketEndpoint in favor of a collapsed conn.StdNetBind. conn.StdNetBind makes use of recvmmsg() and sendmmsg() on Linux. All platforms now fall under conn.StdNetBind, except for Windows, which remains in conn.WinRingBind, which still needs to be adjusted to handle multiple packets. Also refactor sticky sockets support to eventually be applicable on platforms other than just Linux. However Linux remains the sole platform that fully implements it for now. Co-authored-by: James Tucker <james@tailscale.com> Signed-off-by: James Tucker <james@tailscale.com> Signed-off-by: Jordan Whited <jordan@tailscale.com> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* tun/netstack: bump gvisorColin Adler2023-02-071-4/+4
| | | | | | | Bump gVisor to a recent known-good version. Signed-off-by: Colin Adler <colin1adler@gmail.com> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* tun/netstack: remove separate moduleJason A. Donenfeld2022-08-291-0/+6
| | | | | | | Now that the gvisor deps aren't insane, we can just do this in the main module. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* mod: bump packages and remove compat netipJason A. Donenfeld2022-03-161-17/+6
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* global: use netip where possible nowJason A. Donenfeld2021-11-231-5/+8
| | | | | | | | There are more places where we'll need to add it later, when Go 1.18 comes out with support for it in the "net" package. Also, allowedips still uses slices internally, which might be suboptimal. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* tun: move wintun to its own repoJason A. Donenfeld2021-11-041-4/+6
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* wintun: allow retrieving DLL versionJason A. Donenfeld2021-10-201-4/+4
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* rwcancel: use unix.Poll again but bump x/sys so it uses ppoll under the hoodJason A. Donenfeld2021-09-271-17/+9
| | | | | | | This reverts commit fcc601dbf0f6b626ec1d47a880cbe64f9c8fe385 but then bumps go.mod. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* go.mod: bump golang.org/x/sys againJosh Bleecher Snyder2021-05-251-0/+6
| | | | | | To pick up https://go-review.googlesource.com/c/sys/+/307129. Signed-off-by: Josh Bleecher Snyder <josharian@gmail.com>
* mod: bump x/sysJason A. Donenfeld2021-03-081-4/+4
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* conn: implement RIO for fast Windows UDP socketsJason A. Donenfeld2021-02-251-7/+6
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* device: remove deviceStateNewJason A. Donenfeld2021-02-091-0/+1
| | | | | | | It's never used and we won't have a use for it. Also, move to go-running stringer, for those without GOPATHs. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* netstack: further sequester with own go.mod and go.sumJason A. Donenfeld2021-01-211-375/+0
| | | | | | | | In order to avoid even the flirtation with passing on these dependencies to ordinary consumers of wireguard-go, this commit makes a new go.mod that's entirely separate from the root one. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* tun: add tcpip stack tunnel abstractionJason A. Donenfeld2021-01-131-0/+375
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows people to initiate connections over WireGuard without any underlying operating system support. I'm not crazy about the trash it adds to go.sum, but the code this actually adds to the binaries seems contained to the gvisor repo. For the TCP/IP implementation, it uses gvisor. And it borrows some internals from the Go standard library's resolver in order to bring Dial and DialContext to tun_net, along with the LookupHost helper function. This allows for things like HTTP2-over-TLS to work quite well: package main import ( "io" "log" "net" "net/http" "golang.zx2c4.com/wireguard/device" "golang.zx2c4.com/wireguard/tun" ) func main() { tun, tnet, err := tun.CreateNetTUN([]net.IP{net.ParseIP("192.168.4.29")}, []net.IP{net.ParseIP("8.8.8.8"), net.ParseIP("8.8.4.4")}, 1420) if err != nil { log.Panic(err) } dev := device.NewDevice(tun, &device.Logger{log.Default(), log.Default(), log.Default()}) dev.IpcSet(`private_key=a8dac1d8a70a751f0f699fb14ba1cff7b79cf4fbd8f09f44c6e6a90d0369604f public_key=25123c5dcd3328ff645e4f2a3fce0d754400d3887a0cb7c56f0267e20fbf3c5b endpoint=163.172.161.0:12912 allowed_ip=0.0.0.0/0 `) dev.Up() client := http.Client{ Transport: &http.Transport{ DialContext: tnet.DialContext, }, } resp, err := client.Get("https://www.zx2c4.com/ip") if err != nil { log.Panic(err) } body, err := io.ReadAll(resp.Body) if err != nil { log.Panic(err) } log.Println(string(body)) } Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* device: receive: do not exit immediately on transient UDP receive errorsJason A. Donenfeld2021-01-081-9/+8
| | | | | | | | | | | | | | | | Some users report seeing lines like: > Routine: receive incoming IPv4 - stopped Popping up unexpectedly. Let's sleep and try again before failing, and also log the error, and perhaps we'll eventually understand this situation better in future versions. Because we have to distinguish between the socket being closed explicitly and whatever error this is, we bump the module to require Go 1.16. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* memmod: fix import loading function usageJason A. Donenfeld2020-11-271-4/+4
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* mod: bumpJason A. Donenfeld2020-11-181-6/+8
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* mod: update depsJason A. Donenfeld2020-11-071-9/+7
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* wintun: load wintun.dll from RCDATA resourceSimon Rozman2020-11-071-0/+2
| | | | | Signed-off-by: Simon Rozman <simon@rozman.si> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* go.mod: bump golang.org/x/sys to latest versionTobias Klauser2020-10-271-2/+2
| | | | | | | | This adds the fixes for golang/go#41868 which are needed to build wireguard without direct syscalls on macOS. Signed-off-by: Tobias Klauser <tklauser@distanz.ch> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* tun/wintun/registry: fix Go 1.15 race/checkptr failureBrad Fitzpatrick2020-10-211-2/+2
| | | | | | Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com> [Jason: ran go mod tidy.] Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* global: update header comments and modulesJason A. Donenfeld2020-05-021-6/+7
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* global: use RTMGRP_* consts from x/sys/unixTobias Klauser2020-03-171-2/+2
| | | | | | | | Update the golang.org/x/sys/unix dependency and use the newly introduced RTMGRP_* consts instead of using the corresponding RTNLGRP_* const to create a mask. Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
* mod: bump versionsJason A. Donenfeld2019-10-041-6/+6
|
* wintun: take mutex so that deletion uses the right nameJason A. Donenfeld2019-08-301-6/+9
|
* tun: windows: never retry open on Windows 10Jason A. Donenfeld2019-06-181-6/+6
|
* wintun: guid functions are upstreamJason A. Donenfeld2019-06-061-2/+2
|
* ipc: use simplified fork of winioJason A. Donenfeld2019-05-231-10/+6
|
* mod: update depsJason A. Donenfeld2019-05-031-7/+9
|
* go.mod: use vendored winioJason A. Donenfeld2019-04-291-0/+1
|
* windows: use proper constants from updated x/sysJason A. Donenfeld2019-04-131-6/+7
|
* tun: windows: use new constants in sysJason A. Donenfeld2019-03-201-8/+10
|
* global: begin modularizationJason A. Donenfeld2019-03-031-6/+7
|
* Bump dependencies for ARM ChaCha20Jason A. Donenfeld2019-02-141-6/+6
|
* Import windows scafoldingJason A. Donenfeld2019-02-051-6/+8
|
* Update go x/ librariesJason A. Donenfeld2018-12-101-6/+6
| | | | | | | | | Android 9's Bionic disallows inotify_init with seccomp, so we want the latest unix change, and while we're at it, we update the others too. Reported-by: Berk D. Demir <bdd@mindcast.org> Go CL: https://go-review.googlesource.com/c/sys/+/153318 Fixes: https://lists.zx2c4.com/pipermail/wireguard/2018-December/003642.html
* Switch to go modulesJason A. Donenfeld2018-10-091-0/+6