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) typedef
void(*
Callback zum Abrufen des Zeitintervalls, das gewartet werden soll, bevor die Verbindung zum nächsten Tunnel wiederhergestellt wird.
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
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
[in] appState
App-Statuszeiger, der während der Initialisierung von SubscriptionClient festgelegt wurde.
[in] reconnectParam
Struktur mit Parametern, die die Berechnung der Verzögerung für die Wiederverbindung beeinflussen.
[out] delayMsec
Wartezeit in Millisekunden bis zum nächsten Wiederherstellungsversuch.

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
[in] err
Vom Aufrufer wurde ein WEAVE_ERROR ü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
)

Legt „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 herzustellen.

Details
Parameter
[in] err
Vom Aufrufer wurde ein WEAVE_ERROR übergeben.

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

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

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

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
[in] con
Ein Zeiger auf das WeaveConnection-Objekt.
[in] msgInfo
Ein Zeiger auf das WeaveMessageInfo-Objekt.
[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 aufgerufen, wenn der Dienst-Manager die TCP-Verbindung zum Dienst nicht herstellen konnte.