Documentation
¶
Index ¶
- type DefaultManager
- func (m *DefaultManager) ClassifyRoutes(newRoutes []*route.Route) (map[route.ID]*route.Route, route.HAMap)
- func (m *DefaultManager) GetActiveClientRoutes() route.HAMap
- func (m *DefaultManager) GetClientRoutes() route.HAMap
- func (m *DefaultManager) GetClientRoutesWithNetID() map[route.NetID][]*route.Route
- func (m *DefaultManager) GetRouteSelector() *routeselector.RouteSelector
- func (m *DefaultManager) GetSelectedClientRoutes() route.HAMap
- func (m *DefaultManager) Init() error
- func (m *DefaultManager) InitialRouteRange() []string
- func (m *DefaultManager) SetDNSForwarderPort(port uint16)
- func (m *DefaultManager) SetFirewall(firewall firewall.Manager) error
- func (m *DefaultManager) SetRouteChangeListener(listener listener.NetworkChangeListener)
- func (m *DefaultManager) Stop(stateManager *statemanager.Manager)
- func (m *DefaultManager) TriggerSelection(networks route.HAMap)
- func (m *DefaultManager) UpdateRoutes(updateSerial uint64, serverRoutes map[route.ID]*route.Route, ...) error
- type Manager
- type ManagerConfig
- type MockManager
- func (m *MockManager) ClassifyRoutes(routes []*route.Route) (map[route.ID]*route.Route, route.HAMap)
- func (m *MockManager) GetActiveClientRoutes() route.HAMap
- func (m *MockManager) GetClientRoutes() route.HAMap
- func (m *MockManager) GetClientRoutesWithNetID() map[route.NetID][]*route.Route
- func (m *MockManager) GetRouteSelector() *routeselector.RouteSelector
- func (m *MockManager) GetSelectedClientRoutes() route.HAMap
- func (m *MockManager) Init() error
- func (m *MockManager) InitialRouteRange() []string
- func (m *MockManager) SetDNSForwarderPort(port uint16)
- func (m *MockManager) SetFirewall(firewall.Manager) error
- func (m *MockManager) SetRouteChangeListener(listener listener.NetworkChangeListener)
- func (m *MockManager) Start(ctx context.Context, iface *iface.WGIface)
- func (m *MockManager) Stop(stateManager *statemanager.Manager)
- func (m *MockManager) TriggerSelection(networks route.HAMap)
- func (m *MockManager) UpdateRoutes(updateSerial uint64, newRoutes map[route.ID]*route.Route, ...) error
- type SelectorState
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DefaultManager ¶
type DefaultManager struct {
// contains filtered or unexported fields
}
DefaultManager is the default instance of a route manager
func NewManager ¶
func NewManager(config ManagerConfig) *DefaultManager
func (*DefaultManager) ClassifyRoutes ¶ added in v0.47.0
func (*DefaultManager) GetActiveClientRoutes ¶ added in v0.71.1
func (m *DefaultManager) GetActiveClientRoutes() route.HAMap
GetActiveClientRoutes returns the subset of selected client routes that are currently reachable: the route's peer is Connected and is the one actively carrying the route (not just an HA sibling).
func (*DefaultManager) GetClientRoutes ¶ added in v0.27.4
func (m *DefaultManager) GetClientRoutes() route.HAMap
GetClientRoutes returns most recent list of clientRoutes received from the Management Service
func (*DefaultManager) GetClientRoutesWithNetID ¶ added in v0.35.0
func (m *DefaultManager) GetClientRoutesWithNetID() map[route.NetID][]*route.Route
GetClientRoutesWithNetID returns the current routes from the route map, but the keys consist of the network ID only
func (*DefaultManager) GetRouteSelector ¶ added in v0.27.4
func (m *DefaultManager) GetRouteSelector() *routeselector.RouteSelector
GetRouteSelector returns the route selector
func (*DefaultManager) GetSelectedClientRoutes ¶ added in v0.67.4
func (m *DefaultManager) GetSelectedClientRoutes() route.HAMap
GetSelectedClientRoutes returns only the currently selected/active client routes, filtering out deselected exit nodes. Use this instead of GetClientRoutes when checking if traffic should be routed through the tunnel.
func (*DefaultManager) Init ¶ added in v0.26.4
func (m *DefaultManager) Init() error
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) SetDNSForwarderPort ¶ added in v0.59.10
func (m *DefaultManager) SetDNSForwarderPort(port uint16)
SetDNSForwarderPort sets the DNS forwarder port for route handlers
func (*DefaultManager) SetFirewall ¶ added in v0.50.0
func (m *DefaultManager) SetFirewall(firewall firewall.Manager) error
SetFirewall sets the firewall manager for the DefaultManager Not thread-safe, should be called before starting the manager
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(stateManager *statemanager.Manager)
Stop stops the manager watchers and clean firewall rules
func (*DefaultManager) TriggerSelection ¶ added in v0.27.4
func (m *DefaultManager) TriggerSelection(networks route.HAMap)
TriggerSelection triggers the selection of routes, stopping deselected watchers and starting newly selected ones
type Manager ¶
type Manager interface {
Init() error
UpdateRoutes(updateSerial uint64, serverRoutes map[route.ID]*route.Route, clientRoutes route.HAMap, useNewDNSRoute bool) error
ClassifyRoutes(newRoutes []*route.Route) (map[route.ID]*route.Route, route.HAMap)
TriggerSelection(route.HAMap)
GetRouteSelector() *routeselector.RouteSelector
GetClientRoutes() route.HAMap
GetSelectedClientRoutes() route.HAMap
GetActiveClientRoutes() route.HAMap
GetClientRoutesWithNetID() map[route.NetID][]*route.Route
SetRouteChangeListener(listener listener.NetworkChangeListener)
InitialRouteRange() []string
SetFirewall(firewall.Manager) error
SetDNSForwarderPort(port uint16)
Stop(stateManager *statemanager.Manager)
}
Manager is a route manager interface
type ManagerConfig ¶ added in v0.36.0
type ManagerConfig struct {
Context context.Context
PublicKey string
DNSRouteInterval time.Duration
WGInterface iface.WGIface
StatusRecorder *peer.Status
RelayManager *relayClient.Manager
InitialRoutes []*route.Route
StateManager *statemanager.Manager
DNSServer dns.Server
DNSFeatureFlag bool
PeerStore *peerstore.Store
DisableClientRoutes bool
DisableServerRoutes bool
}
type MockManager ¶
type MockManager struct {
ClassifyRoutesFunc func(routes []*route.Route) (map[route.ID]*route.Route, route.HAMap)
UpdateRoutesFunc func(updateSerial uint64, serverRoutes map[route.ID]*route.Route, clientRoutes route.HAMap, useNewDNSRoute bool) error
TriggerSelectionFunc func(haMap route.HAMap)
GetRouteSelectorFunc func() *routeselector.RouteSelector
GetClientRoutesFunc func() route.HAMap
GetSelectedClientRoutesFunc func() route.HAMap
GetActiveClientRoutesFunc func() route.HAMap
GetClientRoutesWithNetIDFunc func() map[route.NetID][]*route.Route
StopFunc func(manager *statemanager.Manager)
}
MockManager is the mock instance of a route manager
func (*MockManager) ClassifyRoutes ¶ added in v0.47.0
func (m *MockManager) ClassifyRoutes(routes []*route.Route) (map[route.ID]*route.Route, route.HAMap)
ClassifyRoutes mock implementation of ClassifyRoutes from Manager interface
func (*MockManager) GetActiveClientRoutes ¶ added in v0.71.1
func (m *MockManager) GetActiveClientRoutes() route.HAMap
GetActiveClientRoutes mock implementation of GetActiveClientRoutes from the Manager interface
func (*MockManager) GetClientRoutes ¶ added in v0.35.0
func (m *MockManager) GetClientRoutes() route.HAMap
GetClientRoutes mock implementation of GetClientRoutes from the Manager interface
func (*MockManager) GetClientRoutesWithNetID ¶ added in v0.35.0
func (m *MockManager) GetClientRoutesWithNetID() map[route.NetID][]*route.Route
GetClientRoutesWithNetID mock implementation of GetClientRoutesWithNetID from Manager interface
func (*MockManager) GetRouteSelector ¶ added in v0.27.4
func (m *MockManager) GetRouteSelector() *routeselector.RouteSelector
GetRouteSelector mock implementation of GetRouteSelector from Manager interface
func (*MockManager) GetSelectedClientRoutes ¶ added in v0.67.4
func (m *MockManager) GetSelectedClientRoutes() route.HAMap
GetSelectedClientRoutes mock implementation of GetSelectedClientRoutes from the Manager interface
func (*MockManager) Init ¶ added in v0.26.4
func (m *MockManager) Init() error
func (*MockManager) InitialRouteRange ¶ added in v0.21.2
func (m *MockManager) InitialRouteRange() []string
InitialRouteRange mock implementation of InitialRouteRange from Manager interface
func (*MockManager) SetDNSForwarderPort ¶ added in v0.59.10
func (m *MockManager) SetDNSForwarderPort(port uint16)
SetDNSForwarderPort mock implementation of SetDNSForwarderPort from Manager interface
func (*MockManager) SetFirewall ¶ added in v0.50.0
func (m *MockManager) SetFirewall(firewall.Manager) error
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(stateManager *statemanager.Manager)
Stop mock implementation of Stop from Manager interface
func (*MockManager) TriggerSelection ¶ added in v0.27.4
func (m *MockManager) TriggerSelection(networks route.HAMap)
type SelectorState ¶ added in v0.34.0
type SelectorState routeselector.RouteSelector
func (*SelectorState) MarshalJSON ¶ added in v0.34.0
func (s *SelectorState) MarshalJSON() ([]byte, error)
func (*SelectorState) Name ¶ added in v0.34.0
func (s *SelectorState) Name() string
func (*SelectorState) UnmarshalJSON ¶ added in v0.34.0
func (s *SelectorState) UnmarshalJSON(data []byte) error