diff options
| author | David Anderson <danderson@tailscale.com> | 2021-08-30 14:30:06 -0700 |
|---|---|---|
| committer | David Anderson <danderson@tailscale.com> | 2021-08-30 14:30:06 -0700 |
| commit | 9c0a1375eb59721a7c9f46c5560531d8da45b750 (patch) | |
| tree | d23efab8641eebffd77c2187680b926dd624320a /cmd | |
| parent | a35c3ba2214bac4c05bac4c60d5e067607fdab11 (diff) | |
| download | tailscale-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.go | 37 |
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 } |
