Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Register ¶
func Register(name string, ctor BackendCtor)
Types ¶
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 ¶
type BackendCtor func(sm subnet.Manager, ei *ExternalInterface) (Backend, error)
type ExternalInterface ¶
type Manager ¶
func NewManager ¶
type RouteNetwork ¶
type RouteNetwork struct { SimpleNetwork BackendType string SM subnet.Manager GetRoute func(lease *subnet.Lease) *netlink.Route Mtu int LinkIndex int // contains filtered or unexported fields }
func (*RouteNetwork) MTU ¶
func (n *RouteNetwork) MTU() int
func (*RouteNetwork) Run ¶
func (n *RouteNetwork) Run(ctx context.Context)
type SimpleNetwork ¶
type SimpleNetwork struct { SubnetLease *subnet.Lease ExtIface *ExternalInterface }
func (*SimpleNetwork) Lease ¶
func (n *SimpleNetwork) Lease() *subnet.Lease
func (*SimpleNetwork) MTU ¶
func (n *SimpleNetwork) MTU() int
func (*SimpleNetwork) Run ¶
func (_ *SimpleNetwork) Run(ctx context.Context)
Click to show internal directories.
Click to hide internal directories.