summaryrefslogtreecommitdiffhomepage
path: root/cmd
diff options
context:
space:
mode:
authorDavid Anderson <danderson@tailscale.com>2021-08-30 14:30:06 -0700
committerDavid Anderson <danderson@tailscale.com>2021-08-30 14:30:06 -0700
commit9c0a1375eb59721a7c9f46c5560531d8da45b750 (patch)
treed23efab8641eebffd77c2187680b926dd624320a /cmd
parenta35c3ba2214bac4c05bac4c60d5e067607fdab11 (diff)
downloadtailscale-danderson/kernel-tailscale.tar.xz
tailscale-danderson/kernel-tailscale.zip
WIP: kernel accelerated tailscaleddanderson/kernel-tailscale
Diffstat (limited to 'cmd')
-rw-r--r--cmd/tailscaled/tailscaled.go37
1 files changed, 23 insertions, 14 deletions
diff --git a/cmd/tailscaled/tailscaled.go b/cmd/tailscaled/tailscaled.go
index 81a7c7053..3c7f6b990 100644
--- a/cmd/tailscaled/tailscaled.go
+++ b/cmd/tailscaled/tailscaled.go
@@ -19,6 +19,7 @@ import (
"net/http"
"net/http/pprof"
"os"
+ "os/exec"
"os/signal"
"runtime"
"runtime/debug"
@@ -33,7 +34,6 @@ import (
"tailscale.com/logpolicy"
"tailscale.com/net/dns"
"tailscale.com/net/socks5/tssocks"
- "tailscale.com/net/tstun"
"tailscale.com/paths"
"tailscale.com/types/flagtype"
"tailscale.com/types/logger"
@@ -381,24 +381,33 @@ func tryEngine(logf logger.Logf, linkMon *monitor.Mon, name string) (e wgengine.
}
useNetstack = name == "userspace-networking"
if !useNetstack {
- dev, devName, err := tstun.New(logf, name)
- if err != nil {
- tstun.Diagnose(logf, name)
- return nil, false, err
+ // dev, devName, err := tstun.New(logf, name)
+ // if err != nil {
+ // tstun.Diagnose(logf, name)
+ // return nil, false, err
+ // }
+ // conf.Tun = dev
+ // if strings.HasPrefix(name, "tap:") {
+ // conf.IsTAP = true
+ // e, err := wgengine.NewUserspaceEngine(logf, conf)
+ // return e, false, err
+ // }
+
+ // HACK
+ exec.Command("ip", "link", "del", "tailscale0").Run()
+ if err := exec.Command("ip", "link", "add", "tailscale0", "type", "wireguard").Run(); err != nil {
+ return nil, false, fmt.Errorf("create device: %v", err)
}
- conf.Tun = dev
- if strings.HasPrefix(name, "tap:") {
- conf.IsTAP = true
- e, err := wgengine.NewUserspaceEngine(logf, conf)
- return e, false, err
+ if err := exec.Command("ip", "link", "set", "tailscale0", "up").Run(); err != nil {
+ return nil, false, fmt.Errorf("create device: %v", err)
}
- r, err := router.New(logf, dev, linkMon)
+ r, err := router.New(logf, nil, linkMon)
if err != nil {
- dev.Close()
+ //dev.Close()
return nil, false, err
}
- d, err := dns.NewOSConfigurator(logf, devName)
+ d, err := dns.NewOSConfigurator(logf, "tailscale0")
if err != nil {
return nil, false, err
}
@@ -408,7 +417,7 @@ func tryEngine(logf logger.Logf, linkMon *monitor.Mon, name string) (e wgengine.
conf.Router = netstack.NewSubnetRouterWrapper(conf.Router)
}
}
- e, err = wgengine.NewUserspaceEngine(logf, conf)
+ e, err = wgengine.NewKernelEngine(logf, conf)
if err != nil {
return nil, useNetstack, err
}