Documentation
¶
Index ¶
- func AddTunAddr(tun gtun.Tun, addr string) error
- func AddTunRoute(tun gtun.Tun, route string) error
- func CreateDefaultTUN(base string, mtu int) (gtun.Tun, error)
- func GetTunAddrs(tun gtun.Tun) ([]string, error)
- func GetTunRotue(tun gtun.Tun) ([]string, error)
- func NormalizeMTU(mtu int) int
- func SetTunAddrs(tun gtun.Tun, addrs []string) error
- func SetTunMTU(tun gtun.Tun, mtu int) error
- func SetTunName(tun gtun.Tun, name string) ([]string, error)
- func SetTunRoutes(tun gtun.Tun, routes []string) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AddTunAddr ¶
AddTunAddr updates list off addrs of provided Tun.
The address must be a CIDR prefix such as "10.0.0.1/32" or "fd00::1/128". The Tun must expose a non-nil File; otherwise sysnet.ErrUnknownTun is returned.
func AddTunRoute ¶
AddTunRoute updates list off routes of provided Tun.
The route must be a CIDR prefix such as "10.0.0.0/24" or "fd00::/64". The Tun must expose a non-nil File; otherwise sysnet.ErrUnknownTun is returned.
func CreateDefaultTUN ¶
CreateDefaultTUN creates a TUN device whose name is generated from base.
Unlike tuntap.CreateTUN, base is not used as the exact interface name. Instead, each attempt uses the template "<base>-<rand>", where rand is a freshly generated alpha-numeric string sized to consume the space left by the base name and Linux's 15-character interface name limit. The final name is truncated to Linux's limit after base and rand are concatenated.
If the generated name is already occupied, CreateDefaultTUN generates another random suffix and tries again, up to a fixed attempt limit. Only name-occupied errors are retryable; random generation failures, invalid names, permission errors, missing /dev/net/tun, unsupported MTU values, and all other tuntap.CreateTUN errors are returned immediately.
func GetTunAddrs ¶
GetTunAddrs returns list off addrs of provided Tun.
Returned entries are CIDR prefixes assigned to the interface. The Tun must expose a non-nil File; otherwise sysnet.ErrUnknownTun is returned.
func GetTunRotue ¶
GetTunRotue returns list off routes of provided Tun.
The misspelling is kept to match the gonnect sysnet.System interface. The Tun must expose a non-nil File; otherwise sysnet.ErrUnknownTun is returned.
func NormalizeMTU ¶ added in v0.1.3
NormalizeMTU returns the effective TUN MTU used by Linux configuration.
func SetTunAddrs ¶
SetTunAddrs updates list off addrs of provided Tun.
Existing interface addresses are removed before the new CIDR addresses are added. The Tun must expose a non-nil File; otherwise sysnet.ErrUnknownTun is returned.
func SetTunMTU ¶
SetTunMTU updates MTU of provided Tun.
The Tun must expose a non-nil File; otherwise sysnet.ErrUnknownTun is returned. Values lower than the IPv4 minimum MTU are replaced with a sensible default of 1420 bytes.
func SetTunName ¶
SetTunName updates name of provided Tun.
The Tun must expose a non-nil File; otherwise sysnet.ErrUnknownTun is returned.
func SetTunRoutes ¶
SetTunRoutes updates list off routes of provided Tun.
Existing main-table routes whose output interface is the Tun are removed before the provided CIDR routes are added. The Tun must expose a non-nil File; otherwise sysnet.ErrUnknownTun is returned.
Types ¶
This section is empty.