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{
  kStatus_TunDown = 0,
  kStatus_TunPrimaryUp = 1,
  kStatus_TunPrimaryConnError = 2,
  kStatus_TunBackupConnError = 3,
  kStatus_TunFailoverToBackup = 4,
  kStatus_TunBackupOnlyDown = 5,
  kStatus_TunBackupUp = 6,
  kStatus_TunPrimaryAndBackupUp = 7,
  kStatus_TunPrimaryReconnectRcvd = 8,
  kStatus_TunBackupReconnectRcvd = 9,
  kStatus_TunPrimaryLiveness = 10,
  kStatus_TunBackupLiveness = 11
}
enum
TunnelConnNotifyReasons typedef.
TunnelConnectionState{
  kState_NotConnected = 0,
  kState_Connecting = 1,
  kState_ConnectionEstablished = 2,
  kState_TunnelOpen = 3,
  kState_TunnelClosing = 4,
  kState_ReconnectRecvd = 5
}
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
[in] appState
Der App-Statuszeiger wurde während der Initialisierung des SubscriptionClient gesetzt.
[in] reconnectParam
Struktur mit Parametern, die die Berechnung der Verzögerung für die erneute Verbindung beeinflussen.
[out] delayMsec
Wartezeit in Millisekunden bis zum nächsten Verbindungsversuch.

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
[in] err
Ein WEAVE_ERROR vom Aufrufer wurde übergeben.

SetInterfaceName

void SetInterfaceName(
  const char *intfName
)

Legen Sie InterfaceName für die Tunnelverbindung fest.

Details
Parameter
[in] tunIntf
Der InterfaceName zum Festlegen der Diensttunnelverbindung.

SetInterfaceType

void SetInterfaceType(
  const SrcInterfaceType srcIntfType
)

Legen Sie SrcInterfaceType für die Tunnelverbindung fest.

Details
Parameter
[in] srcIntfType
Der Netzwerktechnologietyp der Schnittstelle für die Diensttunnelverbindung.

Herunterfahren

void Shutdown(
  void
)

Fahren Sie WeaveTunnelConnectionMgr herunter.

StopAndReconnectTunnelConn

void StopAndReconnectTunnelConn(
  ReconnectParam & reconnParam
)

Beenden Sie die Verbindung zum Diensttunnel und versuchen Sie noch einmal, die Verbindung wiederherzustellen.

Details
Parameter
[in] err
Ein WEAVE_ERROR vom Aufrufer wurde übergeben.

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
[in] appState
Der App-Statuszeiger wurde während der Initialisierung des SubscriptionClient gesetzt.
[in] reconnectParam
Struktur mit Parametern, die die Berechnung der Verzögerung für die erneute Verbindung beeinflussen.
[out] delayMsec
Wartezeit in Millisekunden bis zum nächsten Verbindungsversuch.

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
[in] con
Ein Zeiger auf das WeaveConnection-Objekt.
[in] conErr
Jeder Fehler innerhalb von WeaveConnection oder WEAVE_NO_ERROR.

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
[in] con
Ein Zeiger auf das WeaveConnection-Objekt.
[in] conErr
Jeder Fehler innerhalb von WeaveConnection oder WEAVE_NO_ERROR.

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
[in] con
Ein Zeiger auf das WeaveConnection-Objekt.
[in] msgInfo
Ein Zeiger auf das Objekt WeaveMessageInfo.
[in] message
Ein Zeiger auf das PacketBuffer-Objekt, das das getunnelte IPv6-Paket enthält.

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.