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 würde verwendet werden, um den Tunnel über jede Schnittstelle zu verwalten, über die der Weave-Tunnel zum Dienst existieren würde.
Konstruktoren und Zerstörer |
|
---|---|
WeaveTunnelConnectionMgr(void)
|
Öffentliche Typen |
|
---|---|
ConnectPolicyCallback)(void *const appState, ReconnectParam &reconnectParam, uint32_t &delayMsec)
|
typedef.void(*
Callback zum Abrufen des Zeitintervalls, bis der nächste Tunnel wieder eine Verbindung herstellt. |
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
Legen Sie 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 wiederherzustellen.
|
TryConnectingNow(void)
|
Versuchen Sie, eine Verbindung zum Dienst herzustellen.
|
Öffentliche statische Funktionen |
|
---|---|
DefaultReconnectPolicyCallback(void *const appstate, ReconnectParam & reconnectParam, uint32_t & delayMsec)
|
void
Die standardmäßige Richtlinienimplementierung zum Abrufen des nächsten Verbindungsaufbaus mit dem Dienst.
|
HandleServiceConnectionClosed(WeaveConnection *con, WEAVE_ERROR conErr)
|
void
Handler, der beim Schließen der Dienst-TCP-Verbindung aufgerufen wird.
|
HandleServiceConnectionComplete(WeaveConnection *con, WEAVE_ERROR conErr)
|
void
Handler, der aufgerufen wird, wenn eine Dienst-TCP-Verbindung hergestellt wurde.
|
RecvdFromService(WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *message)
|
void
Handler, der getunnelte IPv6-Pakete von der TCP-Verbindung des Dienstes empfängt und an die Tunnel EndPoint-Schnittstelle weiterleitet, nachdem das IPv6-Rohpaket aus dem Tunnel-Header kapselt ist.
|
ServiceMgrStatusHandler(void *appState, WEAVE_ERROR err, StatusReport *report)
|
void
Handler, der aufgerufen wird, wenn der Dienstmanager 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, bis der nächste Tunnel wieder eine Verbindung herstellt.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
TunnelConnNotifyReasons
TunnelConnNotifyReasons
Attribute | |
---|---|
kStatus_TunBackupConnError
|
Wird verwendet, um anzuzeigen, dass ein Verbindungsversuch zum Sicherungstunnel fehlgeschlagen ist oder ein bestehender Verbindungsversuch lokal abgebrochen oder durch Peer geschlossen wurde. |
kStatus_TunBackupLiveness
|
Wird verwendet, um Informationen zur Tunnelaktivitätsprüfung im Backup Weave-Tunnel anzugeben. |
kStatus_TunBackupOnlyDown
|
Wird verwendet, um anzuzeigen, dass der Sicherungstunnel ausgefallen ist. |
kStatus_TunBackupReconnectRcvd
|
Wird verwendet, um anzuzeigen, dass der Dienst eine Verbindung zur 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 ausgefallen ist. |
kStatus_TunFailoverToBackup
|
Wird verwendet, um anzuzeigen, dass der primäre Tunnel ausgefallen ist und ein Wechsel auf den Backup-Tunnel erfolgt ist. |
kStatus_TunPrimaryAndBackupUp
|
Wird verwendet, um anzuzeigen, dass sowohl der Primär- als auch der Backup-Weave-Tunnel aktiv sind. |
kStatus_TunPrimaryConnError
|
Wird verwendet, um anzuzeigen, dass ein Verbindungsversuch zum primären Tunnel fehlgeschlagen ist oder ein bestehender Verbindungsversuch lokal abgebrochen oder durch Peer geschlossen wurde. |
kStatus_TunPrimaryLiveness
|
Wird verwendet, um Informationen zur Tunnelaktivitätsprüfung im Primary Weave-Tunnel anzugeben. |
kStatus_TunPrimaryReconnectRcvd
|
Wird verwendet, um anzuzeigen, dass der Dienst eine erneute Verbindung für den Primary 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 sich das Border Gateway nach einer Verzeichnissuche neu verbindet. |
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 geöffnet und für den Datenverkehr 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 )
Legen Sie 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 wiederherzustellen.
Details | |||
---|---|---|---|
Parameter |
|
TryConnectingNow
WEAVE_ERROR TryConnectingNow( void )
Versuchen Sie, eine Verbindung zum Dienst herzustellen.
Versuchen Sie, entweder mit 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 standardmäßige Richtlinienimplementierung zum Abrufen des nächsten Verbindungsaufbaus mit dem Dienst.
Diese Richtlinie wählt einen zufälligen Zeitraum (mit Auflösung im Millisekundenbereich) über ein zunehmendes Zeitfenster nach einer Fibonacci-Sequenz bis WEAVE_CONFIG_TUNNELING_RECONNECT_MAX_FIBONACCI_INDEX aus.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
HandleServiceConnectionClosed
void HandleServiceConnectionClosed( WeaveConnection *con, WEAVE_ERROR conErr )
Handler, der beim Schließen der Dienst-TCP-Verbindung aufgerufen wird.
Das Gerät versucht, die Verbindung zum Dienst wiederherzustellen, wenn „mServiceConKeepAlive“ auf „true“ gesetzt ist.
Das Gerät versucht anschließend, die Verbindung zum Dienst wiederherzustellen.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
HandleServiceConnectionComplete
void HandleServiceConnectionComplete( WeaveConnection *con, WEAVE_ERROR conErr )
Handler, der aufgerufen wird, wenn eine Dienst-TCP-Verbindung hergestellt wurde.
Das Gerät initiiert dann über diese Funktion Tunnelsteuerungsbefehle an den Dienst.
Das Gerät initiiert dann über diese Funktion Tunnelsteuerungsbefehle an den Dienst.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
RecvdFromService
void RecvdFromService( WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *message )
Handler, der getunnelte IPv6-Pakete von der TCP-Verbindung des Dienstes empfängt und an die Tunnel EndPoint-Schnittstelle weiterleitet, nachdem das IPv6-Rohpaket aus dem Tunnel-Header kapselt ist.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
ServiceMgrStatusHandler
void ServiceMgrStatusHandler( void *appState, WEAVE_ERROR err, StatusReport *report )
Handler, der aufgerufen wird, wenn der Dienstmanager die TCP-Verbindung zum Dienst nicht herstellen konnte.