cmd/tailscaled, wgengine{,/netstack}: add netstack hybrid mode, add to Windows

For #707

Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
Brad Fitzpatrick
2021-04-01 09:35:41 -07:00
committed by Brad Fitzpatrick
parent 1f99f889e1
commit d488678fdc
8 changed files with 220 additions and 33 deletions

View File

@@ -36,6 +36,7 @@ import (
"tailscale.com/types/logger"
"tailscale.com/version"
"tailscale.com/wgengine"
"tailscale.com/wgengine/netstack"
"tailscale.com/wgengine/router"
)
@@ -171,6 +172,9 @@ func startIPNServer(ctx context.Context, logid string) error {
dev.Close()
return nil, err
}
if wrapNetstack {
r = netstack.NewSubnetRouterWrapper(r)
}
eng, err := wgengine.NewUserspaceEngine(logf, wgengine.Config{
Tun: dev,
Router: r,
@@ -182,6 +186,10 @@ func startIPNServer(ctx context.Context, logid string) error {
dev.Close()
return nil, err
}
onlySubnets := true
if wrapNetstack {
mustStartNetstack(logf, eng, onlySubnets)
}
return wgengine.NewWatchdog(eng), nil
}