Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ClientConnection ¶
type ClientConnection interface {
GetID() string
GetConnectionSource() *connection.Connection
GetConnectionDestination() *connection.Connection
GetNetworkService() string
}
ClientConnection is an interface for client connection
type HealState ¶
type HealState int32
HealState - keep the cause of healing process
const ( // HealStateDstDown is a case when destination is down: we need to restore it and re-program local Forwarder. HealStateDstDown HealState = 1 // HealStateSrcDown is a case when source is down: most probable will not happen yet. HealStateSrcDown HealState = 2 // HealStateForwarderDown is a case when local Forwarder is down: we need to heal NSE/Remote NSM and local Forwarder. HealStateForwarderDown HealState = 3 // HealStateDstUpdate is a case when destination is updated: we need to re-program local Forwarder. HealStateDstUpdate HealState = 4 // HealStateDstNmgrDown is a case when destination and/or Remote NSM is down: we need to heal NSE/Remote NSM. HealStateDstNmgrDown HealState = 5 )
type MonitorManager ¶
type MonitorManager interface {
CrossConnectMonitor() crossconnect_monitor.MonitorServer
LocalConnectionMonitor(workspace string) connectionmonitor.MonitorServer
}
MonitorManager is an interface to provide access to different monitors
type NetworkServiceClient ¶
type NetworkServiceClient interface {
Request(ctx context.Context, request *networkservice.NetworkServiceRequest) (*connection.Connection, error)
Close(ctx context.Context, connection *connection.Connection) error
Cleanup() error
}
NetworkServiceClient is an interface for network service client
type NetworkServiceEndpointManager ¶
type NetworkServiceEndpointManager interface {
GetEndpoint(ctx context.Context, requestConnection *connection.Connection, ignoreEndpoints map[registry.EndpointNSMName]*registry.NSERegistration) (*registry.NSERegistration, error)
CreateNSEClient(ctx context.Context, endpoint *registry.NSERegistration) (NetworkServiceClient, error)
IsLocalEndpoint(endpoint *registry.NSERegistration) bool
CheckUpdateNSE(ctx context.Context, reg *registry.NSERegistration) bool
}
NetworkServiceEndpointManager - manages endpoints, TODO: Will be removed in next PRs.
type NetworkServiceHealProcessor ¶
type NetworkServiceHealProcessor interface {
Heal(ctx context.Context, clientConnection ClientConnection, healState HealState)
CloseConnection(ctx context.Context, clientConnection ClientConnection) error
}
NetworkServiceHealProcessor - perform Healing operations
type NetworkServiceManager ¶
type NetworkServiceManager interface {
GetHealProperties() *properties.Properties
WaitForForwarder(ctx context.Context, duration time.Duration) error
RemoteConnectionLost(ctx context.Context, clientConnection ClientConnection)
NotifyRenamedEndpoint(nseOldName, nseNewName string)
// Getters
NseManager() NetworkServiceEndpointManager
SetRemoteServer(server networkservice.NetworkServiceServer)
Model() model.Model
NetworkServiceHealProcessor
ServiceRegistry() serviceregistry.ServiceRegistry
RestoreConnections(xcons []*crossconnect.CrossConnect, forwarder string, manager MonitorManager)
}
NetworkServiceManager - hold useful nsm structures
type NetworkServiceRequestManager ¶
type NetworkServiceRequestManager interface {
LocalManager(clientConnection ClientConnection) networkservice.NetworkServiceServer
RemoteManager() networkservice.NetworkServiceServer
}
NetworkServiceRequestManager - allow to provide local and remote service interfaces.
Click to show internal directories.
Click to hide internal directories.