nl:: Weave:: Profiles:: WeaveTunnel:: WeaveTunnelConnectionMgr
#include <src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.h>
Diese Klasse kapselt alle Weave-Tunnel-Verbindungsstatus sowie die zugehörige Verwaltungslogik und -funktionen.
Zusammenfassung
Eine Instanz dieser Klasse wird verwendet, um den Tunnel über jede Schnittstelle zu verwalten, über die der Weave-Tunnel zum Dienst vorhanden ist.
Konstruktoren und Zerstörer |
|
---|---|
WeaveTunnelConnectionMgr(void)
|
Öffentliche Typen |
|
---|---|
ConnectPolicyCallback)(void *const appState, ReconnectParam &reconnectParam, uint32_t &delayMsec)
|
typedefvoid(*
Callback zum Abrufen des Zeitintervalls, das gewartet werden soll, bevor die Verbindung zum nächsten Tunnel wiederhergestellt wird. |
TunnelConnNotifyReasons{
|
enum |
TunnelConnNotifyReasons
|
typedef |
TunnelConnectionState{
|
enum |
TunnelConnectionState
|
typedef |
Öffentliche Attribute |
|
---|---|
mServiceConnDelayPolicyCallback
|
Öffentliche Funktionen |
|
---|---|
Init(WeaveTunnelAgent *tunAgent, TunnelType tunType, SrcInterfaceType srcIntfType, const char *connIntfName)
|
Initialisieren Sie den WeaveTunnelConnectionMgr.
|
ServiceTunnelClose(WEAVE_ERROR err)
|
void
Schließen Sie den Diensttunnel.
|
SetInterfaceName(const char *intfName)
|
void
Legen Sie InterfaceName für die Tunnelverbindung fest.
|
SetInterfaceType(const SrcInterfaceType srcIntfType)
|
void
Legt „SrcInterfaceType“ für die Tunnelverbindung fest.
|
Shutdown(void)
|
void
Fahren Sie WeaveTunnelConnectionMgr herunter.
|
StopAndReconnectTunnelConn(ReconnectParam & reconnParam)
|
void
Beenden Sie die Verbindung zum Diensttunnel und versuchen Sie noch einmal, die Verbindung herzustellen.
|
TryConnectingNow(void)
|
Versuchen Sie, eine Verbindung zum Dienst herzustellen.
|
Öffentliche statische Funktionen |
|
---|---|
DefaultReconnectPolicyCallback(void *const appstate, ReconnectParam & reconnectParam, uint32_t & delayMsec)
|
void
Die Standardimplementierung der Richtlinie zum Abrufen der nächsten Verbindung mit dem Dienst.
|
HandleServiceConnectionClosed(WeaveConnection *con, WEAVE_ERROR conErr)
|
void
Handler wird aufgerufen, wenn die Dienst-TCP-Verbindung geschlossen wird.
|
HandleServiceConnectionComplete(WeaveConnection *con, WEAVE_ERROR conErr)
|
void
Handler wird aufgerufen, wenn die Dienst-TCP-Verbindung abgeschlossen ist.
|
RecvdFromService(WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *message)
|
void
Handler für den Empfang getunnelter IPv6-Pakete über die Dienst-TCP-Verbindung und für die Weiterleitung an die Tunnel EndPoint-Schnittstelle, nachdem das unformatierte IPv6-Paket aus dem Tunnelheader entkapselt wurde.
|
ServiceMgrStatusHandler(void *appState, WEAVE_ERROR err, StatusReport *report)
|
void
Handler aufgerufen, wenn der Dienst-Manager die TCP-Verbindung zum Dienst nicht herstellen konnte.
|
Öffentliche Typen
ConnectPolicyCallback
void(* ConnectPolicyCallback)(void *const appState, ReconnectParam &reconnectParam, uint32_t &delayMsec)
Callback zum Abrufen des Zeitintervalls, das gewartet werden soll, bevor die Verbindung zum nächsten Tunnel wiederhergestellt wird.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
TunnelConnNotifyReasons
TunnelConnNotifyReasons
Attribute | |
---|---|
kStatus_TunBackupConnError
|
Wird verwendet, um anzuzeigen, dass ein Verbindungsversuch für einen Sicherungstunnel fehlgeschlagen ist oder ein vorhandener Verbindungsversuch lokal abgebrochen oder durch Peer geschlossen wurde. |
kStatus_TunBackupLiveness
|
Wird verwendet, um Informationen über die Tunnel-Aktivitätsprüfung im Backup-Weave-Tunnel anzuzeigen. |
kStatus_TunBackupOnlyDown
|
Gibt an, dass der Sicherungstunnel ausgefallen ist. |
kStatus_TunBackupReconnectRcvd
|
Wird verwendet, um anzuzeigen, dass der Dienst eine Wiederherstellung des Backup-Weave-Tunnels angefordert hat. |
kStatus_TunBackupUp
|
Wird verwendet, um anzuzeigen, dass der Backup Weave-Tunnel aktiv ist. |
kStatus_TunDown
|
Wird verwendet, um anzuzeigen, dass der Weave-Tunnel abgestürzt ist. |
kStatus_TunFailoverToBackup
|
Wird verwendet, um anzuzeigen, dass der primäre Tunnel ausgefallen ist und ein Wechsel zum Sicherungstunnel stattgefunden hat. |
kStatus_TunPrimaryAndBackupUp
|
Wird verwendet, um anzuzeigen, dass sowohl der primäre als auch der Backup-Weave-Tunnel aktiv sind. |
kStatus_TunPrimaryConnError
|
Wird verwendet, um anzuzeigen, dass ein Verbindungsversuch des primären Tunnels fehlgeschlagen ist oder ein vorhandener Verbindungsversuch lokal abgebrochen oder durch Peer geschlossen wurde. |
kStatus_TunPrimaryLiveness
|
Wird verwendet, um Informationen über die Tunnel-Aktivitätsprüfung im Primär-Weave-Tunnel anzuzeigen. |
kStatus_TunPrimaryReconnectRcvd
|
Wird verwendet, um anzuzeigen, dass der Dienst eine Neuverbindung für den Primär-Weave-Tunnel angefordert hat. |
kStatus_TunPrimaryUp
|
Wird verwendet, um anzuzeigen, dass der primäre Weave-Tunnel aktiv ist. |
TunnelConnNotifyReasons
enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelConnectionMgr::TunnelConnNotifyReasons TunnelConnNotifyReasons
TunnelConnectionState
TunnelConnectionState
Attribute | |
---|---|
kState_Connecting
|
Wird verwendet, um anzuzeigen, dass die Weave-Tunnel-Verbindung initiiert wurde. |
kState_ConnectionEstablished
|
Wird verwendet, um anzuzeigen, dass die Weave-Tunnel-Verbindung hergestellt wurde und Routeninformationen ausgetauscht werden. |
kState_NotConnected
|
Wird verwendet, um anzuzeigen, dass der Weave Tunnel nicht verbunden ist. |
kState_ReconnectRecvd
|
Wird verwendet, um anzugeben, dass der Dienst möchte, dass das Border-Gateway nach einer Verzeichnissuche eine neue Verbindung herstellt. |
kState_TunnelClosing
|
Wird verwendet, um anzuzeigen, dass der Weave Tunnel geschlossen und die Verbindung getrennt wird. |
kState_TunnelOpen
|
Wird verwendet, um anzuzeigen, dass der Weave Tunnel offen und für die Übertragung des Datenverkehrs bereit ist. |
TunnelConnectionState
enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelConnectionMgr::TunnelConnectionState TunnelConnectionState
Öffentliche Attribute
mServiceConnDelayPolicyCallback
ConnectPolicyCallback mServiceConnDelayPolicyCallback
Öffentliche Funktionen
Init
WEAVE_ERROR Init( WeaveTunnelAgent *tunAgent, TunnelType tunType, SrcInterfaceType srcIntfType, const char *connIntfName )
Initialisieren Sie den WeaveTunnelConnectionMgr.
ServiceTunnelClose
void ServiceTunnelClose( WEAVE_ERROR err )
Schließen Sie den Diensttunnel.
Details | |||
---|---|---|---|
Parameter |
|
SetInterfaceName
void SetInterfaceName( const char *intfName )
Legen Sie InterfaceName für die Tunnelverbindung fest.
Details | |||
---|---|---|---|
Parameter |
|
SetInterfaceType
void SetInterfaceType( const SrcInterfaceType srcIntfType )
Legt „SrcInterfaceType“ für die Tunnelverbindung fest.
Details | |||
---|---|---|---|
Parameter |
|
StopAndReconnectTunnelConn
void StopAndReconnectTunnelConn( ReconnectParam & reconnParam )
Beenden Sie die Verbindung zum Diensttunnel und versuchen Sie noch einmal, die Verbindung herzustellen.
Details | |||
---|---|---|---|
Parameter |
|
TryConnectingNow
WEAVE_ERROR TryConnectingNow( void )
Versuchen Sie, eine Verbindung zum Dienst herzustellen.
Versuchen Sie, entweder über ServiceManager oder direkt eine Verbindung zum Dienst herzustellen.
WeaveTunnelConnectionMgr
WeaveTunnelConnectionMgr( void )
Öffentliche statische Funktionen
DefaultReconnectPolicyCallback
void DefaultReconnectPolicyCallback( void *const appstate, ReconnectParam & reconnectParam, uint32_t & delayMsec )
Die Standardimplementierung der Richtlinie zum Abrufen der nächsten Verbindung mit dem Dienst.
Mit dieser Richtlinie wird ein zufälliger Zeitraum (mit einer Auflösung von Millisekunden) über ein zunehmendes Fenster ausgewählt, der einer Fibonacci-Folge bis zu WEAVE_CONFIG_TUNNELING_RECONNECT_MAX_FIBONACCI_INDEX folgt.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
HandleServiceConnectionClosed
void HandleServiceConnectionClosed( WeaveConnection *con, WEAVE_ERROR conErr )
Handler wird aufgerufen, wenn die Dienst-TCP-Verbindung geschlossen wird.
Das Gerät versucht, die Verbindung zum Dienst wiederherzustellen, wenn mServiceConKeepAlive auf "true" gesetzt ist.
Anschließend versucht das Gerät, die Verbindung zum Dienst wiederherzustellen.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
HandleServiceConnectionComplete
void HandleServiceConnectionComplete( WeaveConnection *con, WEAVE_ERROR conErr )
Handler wird aufgerufen, wenn die Dienst-TCP-Verbindung abgeschlossen ist.
Das Gerät fährt mit der Initiierung von Tunnelsteuerungsbefehlen an den Dienst von dieser Funktion fort.
Das Gerät fährt mit der Initiierung von Tunnelsteuerungsbefehlen an den Dienst von dieser Funktion fort.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
RecvdFromService
void RecvdFromService( WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *message )
Handler für den Empfang getunnelter IPv6-Pakete über die Dienst-TCP-Verbindung und für die Weiterleitung an die Tunnel EndPoint-Schnittstelle, nachdem das unformatierte IPv6-Paket aus dem Tunnelheader entkapselt wurde.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
ServiceMgrStatusHandler
void ServiceMgrStatusHandler( void *appState, WEAVE_ERROR err, StatusReport *report )
Handler aufgerufen, wenn der Dienst-Manager die TCP-Verbindung zum Dienst nicht herstellen konnte.