You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Go to file
Brad Fitzpatrick db2436c7ff wgengine/magicsock: don't interrupt endpoint updates, merge all mutex into one
Before, endpoint updates were constantly being interrupted and resumed
on Linux due to tons of LinkChange messages from over-zealous Linux
netlink messages (from router_linux.go)

Now that endpoint updates are fast and bounded in time anyway, just
let them run to completion, but note that another needs to be
scheduled after.

Now logs went from pages of noise to just:

root@taildoc:~# grep -i -E 'stun|endpoint update' log
2020/03/13 08:51:29 magicsock.Conn: starting endpoint update (initial)
2020/03/13 08:51:30 magicsock.Conn.ReSTUN: endpoint update active, need another later ("link-change-minor")
2020/03/13 08:51:31 magicsock.Conn: starting endpoint update (link-change-minor)
2020/03/13 08:51:31 magicsock.Conn.ReSTUN: endpoint update active, need another later ("link-change-minor")
2020/03/13 08:51:33 magicsock.Conn: starting endpoint update (link-change-minor)
2020/03/13 08:51:33 magicsock.Conn.ReSTUN: endpoint update active, need another later ("link-change-minor")
2020/03/13 08:51:35 magicsock.Conn: starting endpoint update (link-change-minor)
2020/03/13 08:51:35 magicsock.Conn.ReSTUN: endpoint update active, need another later ("link-change-minor")

Or, seen in another run:

2020/03/13 08:45:41 magicsock.Conn: starting endpoint update (periodic)
2020/03/13 08:46:09 magicsock.Conn: starting endpoint update (periodic)
2020/03/13 08:46:21 magicsock.Conn: starting endpoint update (link-change-major)
2020/03/13 08:46:37 magicsock.Conn: starting endpoint update (periodic)
2020/03/13 08:47:05 magicsock.Conn: starting endpoint update (periodic)

Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
5 years ago
.github Revert "update CI and everything to Go 1.14." 5 years ago
atomicfile Move Linux client & common packages into a public repo. 5 years ago
cmd controlclient/netmap: write our own b.ConciseDiffFrom(a) function. 5 years ago
control/controlclient Fix staticcheck complaint. 5 years ago
derp derp: test that client a->b and a->c relaying do not interfere 5 years ago
ipn ipn: Prefs.String(): print the current derp setting. 5 years ago
logpolicy logpolicy: automatically figure out paths and filenames. 5 years ago
logtail logtail/filch: use x/sys/unix instead of syscall. 5 years ago
metrics metrics: add a LabelMap type for variables with 1 label dimension. 5 years ago
net net/nettest: new package with net-like testing primitives 5 years ago
netcheck netcheck: work behind UDP-blocked networks again, add tests 5 years ago
paths paths: use /var/db for state on BSDs, and /var/run for sockets. 5 years ago
portlist portlist: add a lint ignore for unused function. 5 years ago
ratelimit Move Linux client & common packages into a public repo. 5 years ago
safesocket safesocket: make some effort to create parent directory of sock 5 years ago
stun netcheck: work behind UDP-blocked networks again, add tests 5 years ago
stunner stunner: quiet a harmless log warning 5 years ago
syncs syncs: add new package for extra sync types 5 years ago
tailcfg tailcfg.NetInfo: add a .String() renderer. 5 years ago
tempfork/osexec Move Linux client & common packages into a public repo. 5 years ago
testy Move Linux client & common packages into a public repo. 5 years ago
tsweb wgengine/monitor: don't call LinkChange when interfaces look unchanged 5 years ago
types types/logger: add adapters for Logf to std Logger/Writer 5 years ago
version version: bump OSS version datestamp. 5 years ago
wgengine wgengine/magicsock: don't interrupt endpoint updates, merge all mutex into one 5 years ago
.gitattributes .gitattributes: add a smudge filter for go.mod. 5 years ago
.gitignore cmd/relaynode: drop local --acl-file in favour of central packet filter. 5 years ago
AUTHORS Move Linux client & common packages into a public repo. 5 years ago
CODE_OF_CONDUCT.md Add a code of conduct. 5 years ago
Dockerfile Revert "update CI and everything to Go 1.14." 5 years ago
LICENSE Move Linux client & common packages into a public repo. 5 years ago
PATENTS Move Linux client & common packages into a public repo. 5 years ago
README.md Revert "update CI and everything to Go 1.14." 5 years ago
SECURITY.md Add a SECURITY.md for vulnerability reports. 5 years ago
go.mod go.mod: bump wireguard-go version. 5 years ago
go.sum go.mod: bump wireguard-go version. 5 years ago

README.md

Tailscale

https://tailscale.com

Private WireGuard® networks made easy

Overview

This repository contains all the open source Tailscale code. It currently includes the Linux client.

The Linux client is currently cmd/relaynode, but will soon be replaced by cmd/tailscaled.

Using

We serve packages for a variety of distros at https://pkgs.tailscale.com .

Building

go install tailscale.com/cmd/tailscale{,d}

We only support the latest Go release and any Go beta or release candidate builds (currently Go 1.13.x or Go 1.14) in module mode. It might work in earlier Go versions or in GOPATH mode, but we're making no effort to keep those working.

Bugs

Please file any issues about this code or the hosted service on the issue tracker.

Contributing

under_construction.gif

PRs welcome, but we are still working out our contribution process and tooling.

We require Developer Certificate of Origin Signed-off-by lines in commits.

About Us

We are apenwarr, bradfitz, crawshaw, danderson, dfcarney, from Tailscale Inc. You can learn more about us from our website.

WireGuard is a registered trademark of Jason A. Donenfeld.