Version: v0.11.0 Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Jan 26, 2019 License: Apache-2.0 Imports: 10 Imported by: 0




This section is empty.


This section is empty.


func Register added in v0.5.6

func Register(name string, ctor BackendCtor)


type Backend

type Backend interface {
	// Called when the backend should create or begin managing a new network
	RegisterNetwork(ctx context.Context, wg sync.WaitGroup, config *subnet.Config) (Network, error)

Besides the entry points in the Backend interface, the backend's New() function receives static network interface information (like internal and external IP addresses, MTU, etc) which it should cache for later use if needed.

type BackendCtor added in v0.5.6

type BackendCtor func(sm subnet.Manager, ei *ExternalInterface) (Backend, error)

type ExternalInterface added in v0.5.6

type ExternalInterface struct {
	Iface     *net.Interface
	IfaceAddr net.IP
	ExtAddr   net.IP

type Manager added in v0.5.6

type Manager interface {
	GetBackend(backendType string) (Backend, error)

func NewManager added in v0.5.6

func NewManager(ctx context.Context, sm subnet.Manager, extIface *ExternalInterface) Manager

type Network added in v0.5.6

type Network interface {
	Lease() *subnet.Lease
	MTU() int
	Run(ctx context.Context)

type RouteNetwork added in v0.10.0

type RouteNetwork struct {
	BackendType string

	SM        subnet.Manager
	GetRoute  func(lease *subnet.Lease) *netlink.Route
	Mtu       int
	LinkIndex int
	// contains filtered or unexported fields

func (*RouteNetwork) MTU added in v0.10.0

func (n *RouteNetwork) MTU() int

func (*RouteNetwork) Run added in v0.10.0

func (n *RouteNetwork) Run(ctx context.Context)

type SimpleNetwork added in v0.5.6

type SimpleNetwork struct {
	SubnetLease *subnet.Lease
	ExtIface    *ExternalInterface

func (*SimpleNetwork) Lease added in v0.5.6

func (n *SimpleNetwork) Lease() *subnet.Lease

func (*SimpleNetwork) MTU added in v0.5.6

func (n *SimpleNetwork) MTU() int

func (*SimpleNetwork) Run added in v0.5.6

func (_ *SimpleNetwork) Run(ctx context.Context)


Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
t or T : Toggle theme light dark auto
y or Y : Canonical URL