feature/linkspeed: move cosmetic tstun netlink code out to modular feature
Part of making all netlink monitoring code optional. Updates #17311 (how I got started down this path) Updates #12614 Change-Id: Ic80d8a7a44dc261c4b8678b3c2241c3b3778370d Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
committed by
Brad Fitzpatrick
parent
63f7a400a8
commit
232b928974
+11
-3
@@ -18,12 +18,16 @@ import (
|
||||
|
||||
"github.com/tailscale/wireguard-go/tun"
|
||||
"tailscale.com/feature"
|
||||
"tailscale.com/feature/buildfeatures"
|
||||
"tailscale.com/types/logger"
|
||||
)
|
||||
|
||||
// CreateTAP is the hook set by feature/tap.
|
||||
// CreateTAP is the hook maybe set by feature/tap.
|
||||
var CreateTAP feature.Hook[func(logf logger.Logf, tapName, bridgeName string) (tun.Device, error)]
|
||||
|
||||
// HookSetLinkAttrs is the hook maybe set by feature/linkspeed.
|
||||
var HookSetLinkAttrs feature.Hook[func(tun.Device) error]
|
||||
|
||||
// modprobeTunHook is a Linux-specific hook to run "/sbin/modprobe tun".
|
||||
var modprobeTunHook feature.Hook[func() error]
|
||||
|
||||
@@ -78,8 +82,12 @@ func New(logf logger.Logf, tunName string) (tun.Device, string, error) {
|
||||
dev.Close()
|
||||
return nil, "", err
|
||||
}
|
||||
if err := setLinkAttrs(dev); err != nil {
|
||||
logf("setting link attributes: %v", err)
|
||||
if buildfeatures.HasLinkSpeed {
|
||||
if f, ok := HookSetLinkAttrs.GetOk(); ok {
|
||||
if err := f(dev); err != nil {
|
||||
logf("setting link attributes: %v", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
name, err := interfaceName(dev)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user