Rename tuntap package to tun

We haven't had TAP support in ages.
This commit is contained in:
Neil Alexander 2022-09-24 14:41:47 +01:00
parent 217ac39e77
commit 01c44a087b
No known key found for this signature in database
GPG Key ID: A02A2019A2BB0944
18 changed files with 31 additions and 36 deletions

View File

@ -32,13 +32,13 @@ import (
"github.com/yggdrasil-network/yggdrasil-go/src/core" "github.com/yggdrasil-network/yggdrasil-go/src/core"
"github.com/yggdrasil-network/yggdrasil-go/src/multicast" "github.com/yggdrasil-network/yggdrasil-go/src/multicast"
"github.com/yggdrasil-network/yggdrasil-go/src/tuntap" "github.com/yggdrasil-network/yggdrasil-go/src/tun"
"github.com/yggdrasil-network/yggdrasil-go/src/version" "github.com/yggdrasil-network/yggdrasil-go/src/version"
) )
type node struct { type node struct {
core *core.Core core *core.Core
tuntap *tuntap.TunAdapter tun *tun.TunAdapter
multicast *multicast.Multicast multicast *multicast.Multicast
admin *admin.AdminSocket admin *admin.AdminSocket
} }
@ -219,7 +219,7 @@ func run(args yggArgs, ctx context.Context, done chan struct{}) {
return return
case args.autoconf: case args.autoconf:
// Use an autoconf-generated config, this will give us random keys and // Use an autoconf-generated config, this will give us random keys and
// port numbers, and will use an automatically selected TUN/TAP interface. // port numbers, and will use an automatically selected TUN interface.
cfg = defaults.GenerateConfig() cfg = defaults.GenerateConfig()
case args.useconffile != "" || args.useconf: case args.useconffile != "" || args.useconf:
// Read the configuration from either stdin or from the filesystem // Read the configuration from either stdin or from the filesystem
@ -348,15 +348,15 @@ func run(args yggArgs, ctx context.Context, done chan struct{}) {
// Setup the TUN module. // Setup the TUN module.
{ {
options := []tuntap.SetupOption{ options := []tun.SetupOption{
tuntap.InterfaceName(cfg.IfName), tun.InterfaceName(cfg.IfName),
tuntap.InterfaceMTU(cfg.IfMTU), tun.InterfaceMTU(cfg.IfMTU),
} }
if n.tuntap, err = tuntap.New(ipv6rwc.NewReadWriteCloser(n.core), logger, options...); err != nil { if n.tun, err = tun.New(ipv6rwc.NewReadWriteCloser(n.core), logger, options...); err != nil {
panic(err) panic(err)
} }
if n.admin != nil && n.tuntap != nil { if n.admin != nil && n.tun != nil {
n.tuntap.SetupAdminHandlers(n.admin) n.tun.SetupAdminHandlers(n.admin)
} }
} }
@ -378,7 +378,7 @@ func run(args yggArgs, ctx context.Context, done chan struct{}) {
func (n *node) shutdown() { func (n *node) shutdown() {
_ = n.admin.Stop() _ = n.admin.Stop()
_ = n.multicast.Stop() _ = n.multicast.Stop()
_ = n.tuntap.Stop() _ = n.tun.Stop()
n.core.Stop() n.core.Stop()
} }

View File

@ -17,7 +17,7 @@ import (
"github.com/yggdrasil-network/yggdrasil-go/src/admin" "github.com/yggdrasil-network/yggdrasil-go/src/admin"
"github.com/yggdrasil-network/yggdrasil-go/src/core" "github.com/yggdrasil-network/yggdrasil-go/src/core"
"github.com/yggdrasil-network/yggdrasil-go/src/multicast" "github.com/yggdrasil-network/yggdrasil-go/src/multicast"
"github.com/yggdrasil-network/yggdrasil-go/src/tuntap" "github.com/yggdrasil-network/yggdrasil-go/src/tun"
"github.com/yggdrasil-network/yggdrasil-go/src/version" "github.com/yggdrasil-network/yggdrasil-go/src/version"
) )
@ -256,7 +256,7 @@ func run() int {
table.Render() table.Render()
case "gettun": case "gettun":
var resp tuntap.GetTUNResponse var resp tun.GetTUNResponse
if err := json.Unmarshal(recv.Response, &resp); err != nil { if err := json.Unmarshal(recv.Response, &resp); err != nil {
panic(err) panic(err)
} }

View File

@ -20,7 +20,7 @@ type platformDefaultParameters struct {
// Multicast interfaces // Multicast interfaces
DefaultMulticastInterfaces []MulticastInterfaceConfig DefaultMulticastInterfaces []MulticastInterfaceConfig
// TUN/TAP // TUN
MaximumIfMTU uint64 MaximumIfMTU uint64
DefaultIfMTU uint64 DefaultIfMTU uint64
DefaultIfName string DefaultIfName string

View File

@ -19,7 +19,7 @@ func getDefaults() platformDefaultParameters {
{Regex: "bridge.*", Beacon: true, Listen: true}, {Regex: "bridge.*", Beacon: true, Listen: true},
}, },
// TUN/TAP // TUN
MaximumIfMTU: 65535, MaximumIfMTU: 65535,
DefaultIfMTU: 65535, DefaultIfMTU: 65535,
DefaultIfName: "auto", DefaultIfName: "auto",

View File

@ -18,7 +18,7 @@ func getDefaults() platformDefaultParameters {
{Regex: ".*", Beacon: true, Listen: true}, {Regex: ".*", Beacon: true, Listen: true},
}, },
// TUN/TAP // TUN
MaximumIfMTU: 32767, MaximumIfMTU: 32767,
DefaultIfMTU: 32767, DefaultIfMTU: 32767,
DefaultIfName: "/dev/tun0", DefaultIfName: "/dev/tun0",

View File

@ -18,7 +18,7 @@ func getDefaults() platformDefaultParameters {
{Regex: ".*", Beacon: true, Listen: true}, {Regex: ".*", Beacon: true, Listen: true},
}, },
// TUN/TAP // TUN
MaximumIfMTU: 65535, MaximumIfMTU: 65535,
DefaultIfMTU: 65535, DefaultIfMTU: 65535,
DefaultIfName: "auto", DefaultIfName: "auto",

View File

@ -18,7 +18,7 @@ func getDefaults() platformDefaultParameters {
{Regex: ".*", Beacon: true, Listen: true}, {Regex: ".*", Beacon: true, Listen: true},
}, },
// TUN/TAP // TUN
MaximumIfMTU: 16384, MaximumIfMTU: 16384,
DefaultIfMTU: 16384, DefaultIfMTU: 16384,
DefaultIfName: "tun0", DefaultIfName: "tun0",

View File

@ -18,7 +18,7 @@ func getDefaults() platformDefaultParameters {
{Regex: ".*", Beacon: true, Listen: true}, {Regex: ".*", Beacon: true, Listen: true},
}, },
// TUN/TAP // TUN
MaximumIfMTU: 65535, MaximumIfMTU: 65535,
DefaultIfMTU: 65535, DefaultIfMTU: 65535,
DefaultIfName: "none", DefaultIfName: "none",

View File

@ -18,7 +18,7 @@ func getDefaults() platformDefaultParameters {
{Regex: ".*", Beacon: true, Listen: true}, {Regex: ".*", Beacon: true, Listen: true},
}, },
// TUN/TAP // TUN
MaximumIfMTU: 65535, MaximumIfMTU: 65535,
DefaultIfMTU: 65535, DefaultIfMTU: 65535,
DefaultIfName: "Yggdrasil", DefaultIfName: "Yggdrasil",

View File

@ -1,4 +1,4 @@
package tuntap package tun
import ( import (
"encoding/json" "encoding/json"

View File

@ -1,4 +1,4 @@
package tuntap package tun
const TUN_OFFSET_BYTES = 4 const TUN_OFFSET_BYTES = 4

View File

@ -1,4 +1,4 @@
package tuntap package tun
func (m *TunAdapter) _applyOption(opt SetupOption) { func (m *TunAdapter) _applyOption(opt SetupOption) {
switch v := opt.(type) { switch v := opt.(type) {

View File

@ -1,10 +1,7 @@
package tuntap package tun
// This manages the tun driver to send/recv packets to/from applications // This manages the tun driver to send/recv packets to/from applications
// TODO: Crypto-key routing support
// TODO: Set MTU of session properly
// TODO: Reject packets that exceed session MTU with ICMPv6 for PMTU Discovery
// TODO: Connection timeouts (call Conn.Close() when we want to time out) // TODO: Connection timeouts (call Conn.Close() when we want to time out)
// TODO: Don't block in reader on writes that are pending searches // TODO: Don't block in reader on writes that are pending searches
@ -13,8 +10,6 @@ import (
"fmt" "fmt"
"net" "net"
//"sync"
"github.com/Arceliar/phony" "github.com/Arceliar/phony"
"golang.zx2c4.com/wireguard/tun" "golang.zx2c4.com/wireguard/tun"

View File

@ -1,7 +1,7 @@
//go:build openbsd || freebsd //go:build openbsd || freebsd
// +build openbsd freebsd // +build openbsd freebsd
package tuntap package tun
import ( import (
"encoding/binary" "encoding/binary"

View File

@ -1,7 +1,7 @@
//go:build !mobile //go:build !mobile
// +build !mobile // +build !mobile
package tuntap package tun
// The darwin platform specific tun parts // The darwin platform specific tun parts

View File

@ -1,7 +1,7 @@
//go:build !mobile //go:build !mobile
// +build !mobile // +build !mobile
package tuntap package tun
// The linux platform specific tun parts // The linux platform specific tun parts
@ -28,7 +28,7 @@ func (tun *TunAdapter) setup(ifname string, addr string, mtu uint64) error {
return tun.setupAddress(addr) return tun.setupAddress(addr)
} }
// Configures the TAP adapter with the correct IPv6 address and MTU. Netlink // Configures the TUN adapter with the correct IPv6 address and MTU. Netlink
// is used to do this, so there is not a hard requirement on "ip" or "ifconfig" // is used to do this, so there is not a hard requirement on "ip" or "ifconfig"
// to exist on the system, but this will fail if Netlink is not present in the // to exist on the system, but this will fail if Netlink is not present in the
// kernel (it nearly always is). // kernel (it nearly always is).

View File

@ -1,7 +1,7 @@
//go:build !linux && !darwin && !windows && !openbsd && !freebsd && !mobile //go:build !linux && !darwin && !windows && !openbsd && !freebsd && !mobile
// +build !linux,!darwin,!windows,!openbsd,!freebsd,!mobile // +build !linux,!darwin,!windows,!openbsd,!freebsd,!mobile
package tuntap package tun
// This is to catch unsupported platforms // This is to catch unsupported platforms
// If your platform supports tun devices, you could try configuring it manually // If your platform supports tun devices, you could try configuring it manually

View File

@ -1,7 +1,7 @@
//go:build windows //go:build windows
// +build windows // +build windows
package tuntap package tun
import ( import (
"bytes" "bytes"
@ -50,7 +50,7 @@ func (tun *TunAdapter) setup(ifname string, addr string, mtu uint64) error {
}) })
} }
// Sets the MTU of the TAP adapter. // Sets the MTU of the TUN adapter.
func (tun *TunAdapter) setupMTU(mtu uint64) error { func (tun *TunAdapter) setupMTU(mtu uint64) error {
if tun.iface == nil || tun.Name() == "" { if tun.iface == nil || tun.Name() == "" {
return errors.New("Can't configure MTU as TUN adapter is not present") return errors.New("Can't configure MTU as TUN adapter is not present")
@ -77,7 +77,7 @@ func (tun *TunAdapter) setupMTU(mtu uint64) error {
return nil return nil
} }
// Sets the IPv6 address of the TAP adapter. // Sets the IPv6 address of the TUN adapter.
func (tun *TunAdapter) setupAddress(addr string) error { func (tun *TunAdapter) setupAddress(addr string) error {
if tun.iface == nil || tun.Name() == "" { if tun.iface == nil || tun.Name() == "" {
return errors.New("Can't configure IPv6 address as TUN adapter is not present") return errors.New("Can't configure IPv6 address as TUN adapter is not present")