routemanager

package
v0.27.3 Latest Latest
Warning

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

Go to latest
Published: Apr 12, 2024 License: BSD-3-Clause Imports: 26 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// NetbirdVPNTableID is the ID of the custom routing table used by Netbird.
	NetbirdVPNTableID = 0x1BD0
	// NetbirdVPNTableName is the name of the custom routing table used by Netbird.
	NetbirdVPNTableName = "netbird"
)

Variables

View Source
var ErrRouteNotAllowed = errors.New("route not allowed")
View Source
var ErrRouteNotFound = errors.New("route not found")
View Source
var ErrTableIDExists = errors.New("ID exists with different name")

Functions

This section is empty.

Types

type AddRouteFunc added in v0.27.0

type AddRouteFunc func(prefix netip.Prefix) (nexthop netip.Addr, intf string, err error)

type DefaultManager

type DefaultManager struct {
	// contains filtered or unexported fields
}

DefaultManager is the default instance of a route manager

func NewManager

func NewManager(ctx context.Context, pubKey string, wgInterface *iface.WGIface, statusRecorder *peer.Status, initialRoutes []*route.Route) *DefaultManager

func (*DefaultManager) EnableServerRouter added in v0.24.4

func (m *DefaultManager) EnableServerRouter(firewall firewall.Manager) error

func (*DefaultManager) Init added in v0.26.4

Init sets up the routing

func (*DefaultManager) InitialRouteRange added in v0.21.2

func (m *DefaultManager) InitialRouteRange() []string

InitialRouteRange return the list of initial routes. It used by mobile systems

func (*DefaultManager) SetRouteChangeListener added in v0.21.0

func (m *DefaultManager) SetRouteChangeListener(listener listener.NetworkChangeListener)

SetRouteChangeListener set RouteListener for route change notifier

func (*DefaultManager) Stop

func (m *DefaultManager) Stop()

Stop stops the manager watchers and clean firewall rules

func (*DefaultManager) UpdateRoutes

func (m *DefaultManager) UpdateRoutes(updateSerial uint64, newRoutes []*route.Route) error

UpdateRoutes compares received routes with existing routes and removes, updates or adds them to the client and server maps

type Manager

type Manager interface {
	Init() (peer.BeforeAddPeerHookFunc, peer.AfterRemovePeerHookFunc, error)
	UpdateRoutes(updateSerial uint64, newRoutes []*route.Route) error
	SetRouteChangeListener(listener listener.NetworkChangeListener)
	InitialRouteRange() []string
	EnableServerRouter(firewall firewall.Manager) error
	Stop()
}

Manager is a route manager interface

type MockManager

type MockManager struct {
	UpdateRoutesFunc func(updateSerial uint64, newRoutes []*route.Route) error
	StopFunc         func()
}

MockManager is the mock instance of a route manager

func (*MockManager) EnableServerRouter added in v0.24.4

func (m *MockManager) EnableServerRouter(firewall firewall.Manager) error

func (*MockManager) Init added in v0.26.4

func (*MockManager) InitialRouteRange added in v0.21.2

func (m *MockManager) InitialRouteRange() []string

InitialRouteRange mock implementation of InitialRouteRange from Manager interface

func (*MockManager) SetRouteChangeListener added in v0.21.0

func (m *MockManager) SetRouteChangeListener(listener listener.NetworkChangeListener)

SetRouteChangeListener mock implementation of SetRouteChangeListener from Manager interface

func (*MockManager) Start added in v0.21.0

func (m *MockManager) Start(ctx context.Context, iface *iface.WGIface)

Start mock implementation of Start from Manager interface

func (*MockManager) Stop

func (m *MockManager) Stop()

Stop mock implementation of Stop from Manager interface

func (*MockManager) UpdateRoutes

func (m *MockManager) UpdateRoutes(updateSerial uint64, newRoutes []*route.Route) error

UpdateRoutes mock implementation of UpdateRoutes from Manager interface

type RemoveRouteFunc added in v0.27.0

type RemoveRouteFunc func(prefix netip.Prefix, nexthop netip.Addr, intf string) error

type RouteManager added in v0.27.0

type RouteManager struct {
	// contains filtered or unexported fields
}

func NewRouteManager added in v0.27.0

func NewRouteManager(addRoute AddRouteFunc, removeRoute RemoveRouteFunc) *RouteManager

func (*RouteManager) AddRouteRef added in v0.27.0

func (rm *RouteManager) AddRouteRef(connID nbnet.ConnectionID, prefix netip.Prefix) error

func (*RouteManager) Flush added in v0.27.0

func (rm *RouteManager) Flush() error

Flush removes all references and routes from the system

func (*RouteManager) RemoveRouteRef added in v0.27.0

func (rm *RouteManager) RemoveRouteRef(connID nbnet.ConnectionID) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL