nl::Weave::Profiles::WeaveTunnel::WeaveTunnelAgent

Zusammenfassung

Konstruktoren und Zerstörer

WeaveTunnelAgent(void)

Öffentliche Typen

AgentState{
  kState_NotInitialized = 0,
  kState_Initialized_NoTunnel = 1,
  kState_PrimaryTunModeEstablished = 2,
  kState_BkupOnlyTunModeEstablished = 3,
  kState_PrimaryAndBkupTunModeEstablished = 4
}
enum
Status des Tunnel-Agents in Bezug auf seine Verbindungen zum Dienst.
AgentState typedef.
Status des Tunnel-Agents in Bezug auf seine Verbindungen zum Dienst.
OnServiceTunnelReconnectNotifyFunct)(TunnelType tunType, const char *reconnectHost, const uint16_t reconnectPort, void *appCtxt) typedef.
void(*
Funktionszeiger auf den Handler, der von einer höheren Ebene festgelegt wird, wenn eine Tunnel-Neuverbindung vom Dienst empfangen wird.
OnServiceTunnelStatusNotifyFunct)(WeaveTunnelConnectionMgr::TunnelConnNotifyReasons reason, WEAVE_ERROR err, void *appCtxt) typedef.
void(*
Funktionszeiger auf einen Handler, der von einer höheren Ebene festgelegt wird, um auf verschiedene Benachrichtigungen im Zusammenhang mit dem Tunnel zum Dienst zu reagieren.
PlatformNetworkOnlineCheck)(TunnelType tunType, void *appCtxt) typedef.
void(*
Funktionszeiger auf einen von der Anwendung bereitgestellten Handler zur Durchführung einer Online-Prüfung auf Netzwerkebene.
WeaveTunnelFlags{
  kTunnelFlag_PrimaryEnabled = 0x01,
  kTunnelFlag_BackupEnabled = 0x02,
  kTunnelFlag_PrimaryRestricted = 0x04,
  kTunnelFlag_BackupRestricted = 0x08
}
enum
Weave-Tunnel-Flag-Bits.
WeaveTunnelFlags typedef.
Weave-Tunnel-Flag-Bits.

Öffentliche Attribute

NetworkOnlineCheck
OnServiceTunReconnectNotify
OnServiceTunStatusNotify
Funktionszeiger auf einen Handler, der von einer höheren Ebene festgelegt wird, um auf verschiedene Benachrichtigungen im Zusammenhang mit dem Tunnel zum Dienst zu reagieren.
mServiceMgr
WeaveServiceManager *
Service Manager-Zeiger, der zum Suchen und Herstellen einer Verbindung zum Dienst verwendet werden soll.

Öffentliche Funktionen

DisablePrimaryTunnel(void)
void
Primären Tunnel deaktivieren.
EnablePrimaryTunnel(void)
void
Aktivieren Sie den primären Tunnel.
GetAgentStateName(const AgentState state)
const char *
Rufen Sie den Namen von WeaveTunnelAgentState ab.
GetTimeMsec(void)
uint64_t
Rufen Sie die Systemzeit in Millisekunden ab.
GetWeaveTunnelAgentState(void)
Rufen Sie den TunnelAgent-Status ab.
Init(InetLayer *inet, WeaveExchangeManager *exchMgr, uint64_t dstNodeId, WeaveAuthMode authMode, WeaveServiceManager *svcMgr, const char *intfName, uint8_t role, void *appContext)
Initialisieren Sie den Tunnel-Agent.
Init(InetLayer *inet, WeaveExchangeManager *exchMgr, uint64_t dstNodeId, IPAddress dstIPAddr, WeaveAuthMode authMode, const char *intfName, uint8_t role, void *appContext)
Initialisieren Sie den Tunnel-Agent.
IsPrimaryTunnelEnabled(void) const
bool
Prüfen Sie, ob der primäre Tunnel aktiviert ist.
IsPrimaryTunnelRoutingRestricted(void)
bool
Prüfen Sie, ob der primäre Tunnel Routingbeschränkungen des Dienstes unterliegt.
IsTunnelRoutingRestricted(void)
bool
Prüfen Sie, ob der Tunnel Routingbeschränkungen des Dienstes unterliegt.
NetworkOnlineCheckResult(TunnelType tunType, bool isOnline)
void
Von der Plattform aufgerufener Rückruf, wenn das Ergebnis der Netzwerk-Online-Prüfung verfügbar ist.
ResetPrimaryReconnectBackoff(bool reconnectImmediately)
Setzen Sie die Zeit für die erneute Verbindung für den primären Tunnel zurück.
SetAuthMode(const WeaveAuthMode authMode)
void
Legen Sie den WeaveAuthMode für den Tunnel fest.
SetDestination(const uint64_t nodeId, const IPAddress ipAddr, const uint16_t servicePort)
void
Legen Sie die Knoten-ID, die IP-Adresse und den Port des Ziels für den Tunnel fest.
SetTunnelingDeviceRole(const Role role)
void
Legen Sie die Rolle des Tunneling-Geräts(BorderGateway, StandaloneDevice, MobileDevice) für den Tunnel fest.
Shutdown(void)
Fahren Sie den Tunnel-Agent herunter.
StartServiceTunnel(void)
Starten Sie den Diensttunnel.
StartServiceTunnel(uint64_t dstNodeId, IPAddress dstIPAddr, WeaveAuthMode authMode)
Starten Sie den Diensttunnel.
StopServiceTunnel(void)
void
Trennen Sie die Tunnelverbindung zum Dienst.
StopServiceTunnel(WEAVE_ERROR err)
void
Trennen Sie die Tunnelverbindung zum Dienst.

Öffentliche statische Funktionen

RecvdFromShortcutUDPTunnel(WeaveMessageLayer *msgLayer, PacketBuffer *message)
void
Handler, der getunnelte IPv6-Pakete über den Shortcut-UDP-Tunnel zwischen dem Border Gateway und dem Mobilgerät empfängt und an die Tunnel EndPoint-Schnittstelle weiterleitet, nachdem das IPv6-Rohpaket aus dem Tunnel-Header kapselt wurde.
RecvdFromTunnelEndPoint(TunEndPoint *tunEP, PacketBuffer *message)
void
Handler, der IPv6-Pakete von der Tunnel EndPoint-Schnittstelle empfängt und weiterleitet, entweder an den Dienst über die Dienst-TCP-Verbindung, nachdem das IPv6-Paket im Tunnel-Header gekapselt wurde, oder zum Mobile-Client über einen Shortcut-Tunnel.

Öffentliche Typen

AgentState

 AgentState

Status des Tunnel-Agents in Bezug auf seine Verbindungen zum Dienst.

Attribute
kState_BkupOnlyTunModeEstablished

Wird verwendet, um anzuzeigen, dass der Sicherungstunnel zum Dienst eingerichtet wurde.

kState_Initialized_NoTunnel

Wird verwendet, um anzuzeigen, dass der Tunnel-Agent initialisiert wurde, aber kein Tunnel eingerichtet wurde.

kState_NotInitialized

Wird verwendet, um anzuzeigen, dass der Tunnel-Agent nicht initialisiert wurde.

kState_PrimaryAndBkupTunModeEstablished

Wird verwendet, um anzuzeigen, dass sowohl der primäre Tunnel als auch der Sicherungstunnel eingerichtet wurden.

kState_PrimaryTunModeEstablished

Wird verwendet, um anzuzeigen, dass der primäre Tunnel zum Dienst eingerichtet wurde.

AgentState

enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelAgent::AgentState AgentState

Status des Tunnel-Agents in Bezug auf seine Verbindungen zum Dienst.

OnServiceTunnelReconnectNotifyFunct

void(* OnServiceTunnelReconnectNotifyFunct)(TunnelType tunType, const char *reconnectHost, const uint16_t reconnectPort, void *appCtxt)

Funktionszeiger auf den Handler, der von einer höheren Ebene festgelegt wird, wenn eine Tunnel-Neuverbindung vom Dienst empfangen wird.

Details
Parameter
[in] tunType
Der Tunneltyp, also „Primär“ oder „Back-up“.
[in] reconnectHost
Der vom Dienst bereitgestellte Hostname, zu dem die Verbindung wiederhergestellt werden soll.
[in] reconnectPort
Der vom Dienst bereitgestellte Zielport, zu dem die Verbindung wiederhergestellt werden soll.
[in] appCtxt
Ein Zeiger auf ein Anwendungskontextobjekt

OnServiceTunnelStatusNotifyFunct

void(* OnServiceTunnelStatusNotifyFunct)(WeaveTunnelConnectionMgr::TunnelConnNotifyReasons reason, WEAVE_ERROR err, void *appCtxt)

Funktionszeiger auf einen Handler, der von einer höheren Ebene festgelegt wird, um auf verschiedene Benachrichtigungen im Zusammenhang mit dem Tunnel zum Dienst zu reagieren.

Details
Parameter
[in] reason
Der Grund für die Statusbenachrichtigung an die Anwendung.
[in] err
Weave-Fehler, falls vorhanden
[in] appCtxt
Ein Zeiger auf ein Anwendungskontextobjekt

PlatformNetworkOnlineCheck

void(* PlatformNetworkOnlineCheck)(TunnelType tunType, void *appCtxt)

Funktionszeiger auf einen von der Anwendung bereitgestellten Handler zur Durchführung einer Online-Prüfung auf Netzwerkebene.

Details
Parameter
[in] tunType
Der Tunneltyp, also „Primär“ oder „Back-up“.
[in] appCtxt
Ein Zeiger auf ein Anwendungskontextobjekt

WeaveTunnelFlags

 WeaveTunnelFlags

Weave-Tunnel-Flag-Bits.

Attribute
kTunnelFlag_BackupEnabled

Wird festgelegt, wenn der Sicherungstunnel aktiviert ist.

kTunnelFlag_BackupRestricted

Wird festgelegt, wenn das Routing des Sicherungstunnels eingeschränkt ist.

kTunnelFlag_PrimaryEnabled

Legen Sie fest, wann der primäre Tunnel aktiviert ist.

kTunnelFlag_PrimaryRestricted

Legen Sie fest, wenn das Routing des primären Tunnels eingeschränkt ist.

WeaveTunnelFlags

enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelAgent::WeaveTunnelFlags WeaveTunnelFlags

Weave-Tunnel-Flag-Bits.

Öffentliche Attribute

NetworkOnlineCheck

PlatformNetworkOnlineCheck NetworkOnlineCheck

OnServiceTunReconnectNotify

OnServiceTunnelReconnectNotifyFunct OnServiceTunReconnectNotify

OnServiceTunStatusNotify

OnServiceTunnelStatusNotifyFunct OnServiceTunStatusNotify

Funktionszeiger auf einen Handler, der von einer höheren Ebene festgelegt wird, um auf verschiedene Benachrichtigungen im Zusammenhang mit dem Tunnel zum Dienst zu reagieren.

mServiceMgr

WeaveServiceManager * mServiceMgr

Service Manager-Zeiger, der zum Suchen und Herstellen einer Verbindung zum Dienst verwendet werden soll.

Öffentliche Funktionen

DisablePrimaryTunnel

void DisablePrimaryTunnel(
  void
)

Primären Tunnel deaktivieren.

Deaktivieren Sie den primären Tunnel.

EnablePrimaryTunnel

void EnablePrimaryTunnel(
  void
)

Aktivieren Sie den primären Tunnel.

Aktivieren Sie den primären Tunnel.

GetAgentStateName

const char * GetAgentStateName(
  const AgentState state
)

Rufen Sie den Namen von WeaveTunnelAgentState ab.

GetTimeMsec

uint64_t GetTimeMsec(
  void
)

Rufen Sie die Systemzeit in Millisekunden ab.

Ruft die Systemzeit oder die monotone Zeit in Millisekunden ab, wenn keine Systemzeit verfügbar ist.

GetWeaveTunnelAgentState

AgentState GetWeaveTunnelAgentState(
  void
)

Rufen Sie den TunnelAgent-Status ab.

Details
Rückgabe
AgentState ist der aktuelle Status von WeaveTunnelAgent.

Init

WEAVE_ERROR Init(
  InetLayer *inet,
  WeaveExchangeManager *exchMgr,
  uint64_t dstNodeId,
  WeaveAuthMode authMode,
  WeaveServiceManager *svcMgr,
  const char *intfName,
  uint8_t role,
  void *appContext
)

Initialisieren Sie den Tunnel-Agent.

Dadurch wird ein Tunnel-Endpunktobjekt erstellt, die Tunnelschnittstelle eingerichtet, Membervariablen, Callbacks und WeaveTunnelControl initialisiert.

Init

WEAVE_ERROR Init(
  InetLayer *inet,
  WeaveExchangeManager *exchMgr,
  uint64_t dstNodeId,
  IPAddress dstIPAddr,
  WeaveAuthMode authMode,
  const char *intfName,
  uint8_t role,
  void *appContext
)

Initialisieren Sie den Tunnel-Agent.

Dadurch wird ein Tunnel-Endpunktobjekt erstellt, die Tunnelschnittstelle eingerichtet, Membervariablen, Callbacks und WeaveTunnelControl initialisiert.

IsPrimaryTunnelEnabled

bool IsPrimaryTunnelEnabled(
  void
) const 

Prüfen Sie, ob der primäre Tunnel aktiviert ist.

Details
Rückgabe
Ist diese Option aktiviert, lautet sie "true", andernfalls "false".

IsPrimaryTunnelRoutingRestricted

bool IsPrimaryTunnelRoutingRestricted(
  void
)

Prüfen Sie, ob der primäre Tunnel Routingbeschränkungen des Dienstes unterliegt.

Prüfen Sie, ob der primäre Tunnel Routingbeschränkungen unterliegt.

Details
Rückgabe
"true", wenn der primäre Tunnel eingerichtet wurde, aber Routingbeschränkungen durch den Dienst unterliegt.

IsTunnelRoutingRestricted

bool IsTunnelRoutingRestricted(
  void
)

Prüfen Sie, ob der Tunnel Routingbeschränkungen des Dienstes unterliegt.

Prüfen Sie, ob der Tunnel Routingbeschränkungen unterliegt.

Details
Rückgabe
"true", wenn entweder der primäre Tunnel oder der Sicherungstunnel eingerichtet ist und beide Routingbeschränkungen durch den Dienst unterliegen.

NetworkOnlineCheckResult

void NetworkOnlineCheckResult(
  TunnelType tunType,
  bool isOnline
)

Von der Plattform aufgerufener Rückruf, wenn das Ergebnis der Netzwerk-Online-Prüfung verfügbar ist.

Details
Parameter
[in] tunType
Der Tunneltyp, der der Schnittstelle entspricht, über die die Netzwerkverbindung geprüft wird.
[in] isOnline
„True“, wenn das Netzwerk online ist, andernfalls „False“.

ResetPrimaryReconnectBackoff

WEAVE_ERROR ResetPrimaryReconnectBackoff(
  bool reconnectImmediately
)

Setzen Sie die Zeit für die erneute Verbindung für den primären Tunnel zurück.

Details
Parameter
[in] reconnectImmediately
Dieser Wert ist auf „True“ gesetzt, wenn sofort eine Verbindung hergestellt werden muss. Andernfalls wird das konfigurierte Zeitlimit für Abgleich verwendet.

SetAuthMode

void SetAuthMode(
  const WeaveAuthMode authMode
)

Legen Sie den WeaveAuthMode für den Tunnel fest.

Details
Parameter
[in] authMode
Weave-Authentifizierungsmodus, der mit Peer verwendet wird.

SetDestination

void SetDestination(
  const uint64_t nodeId,
  const IPAddress ipAddr,
  const uint16_t servicePort
)

Legen Sie die Knoten-ID, die IP-Adresse und den Port des Ziels für den Tunnel fest.

Legen Sie die Knoten-ID und die IP-Adresse des Ziels für den Tunnel fest.

Details
Parameter
[in] nodeId
Knoten-ID des Zielknotens.
[in] ipAddr
IP-Adresse des Zielknotens.
[in] servicePort
Port des Zielknotens.

SetTunnelingDeviceRole

void SetTunnelingDeviceRole(
  const Role role
)

Legen Sie die Rolle des Tunneling-Geräts(BorderGateway, StandaloneDevice, MobileDevice) für den Tunnel fest.

Legen Sie die Rolle des Tunneling-Geräts(BorderGateway oder Standalone) für den Tunnel fest.

Details
Parameter
[in] role
Vom Tunnel-Agent angenommene Rolle; Border Gateway, eigenständiges Gerät oder Mobilgerät.

Herunterfahren

WEAVE_ERROR Shutdown(
  void
)

Fahren Sie den Tunnel-Agent herunter.

Dadurch wird die Verbindung zum Dienst unterbrochen und die TunEndPoint-Oberfläche geschlossen, nachdem die mit der Tunnelschnittstelle verknüpften Adressen und Routen entfernt wurden.

Dadurch wird die Verbindung zum Dienst unterbrochen und die TunEndPoint-Oberfläche geschlossen, nachdem die mit der Tunnelschnittstelle verknüpften Adressen und Routen entfernt wurden.

Details
Rückgabe
WEAVE_NO_ERROR bei Erfolg, sonst ein entsprechender WEAVE_ERROR-Typ.

StartServiceTunnel

WEAVE_ERROR StartServiceTunnel(
  void
)

Starten Sie den Diensttunnel.

Dadurch wird der Tunnel aktiviert und es wird versucht, eine Verbindung zum Dienst herzustellen.

Dadurch wird versucht, eine Verbindung zum Dienst herzustellen. Außerdem wird die Fabric-Route zur Tunnelschnittstelle festgelegt.

Details
Rückgabe
WEAVE_NO_ERROR bei Erfolg, sonst ein entsprechender WEAVE_ERROR-Typ.

StartServiceTunnel

WEAVE_ERROR StartServiceTunnel(
  uint64_t dstNodeId,
  IPAddress dstIPAddr,
  WeaveAuthMode authMode
)

Starten Sie den Diensttunnel.

Dadurch wird der Tunnel aktiviert und es wird versucht, eine Verbindung zum Dienst herzustellen.

StopServiceTunnel

void StopServiceTunnel(
  void
)

Trennen Sie die Tunnelverbindung zum Dienst.

StopServiceTunnel

void StopServiceTunnel(
  WEAVE_ERROR err
)

Trennen Sie die Tunnelverbindung zum Dienst.

Details
Parameter
[in] err
WEAVE_NO_ERROR, wenn es für diese StopServiceTunnel-Anfrage keinen spezifischen Grund gibt, andernfalls wird die Fehlerursache übergeben.

WeaveTunnelAgent

 WeaveTunnelAgent(
  void
)

Öffentliche statische Funktionen

RecvdFromShortcutUDPTunnel

void RecvdFromShortcutUDPTunnel(
  WeaveMessageLayer *msgLayer,
  PacketBuffer *message
)

Handler, der getunnelte IPv6-Pakete über den Shortcut-UDP-Tunnel zwischen dem Border Gateway und dem Mobilgerät empfängt und an die Tunnel EndPoint-Schnittstelle weiterleitet, nachdem das IPv6-Rohpaket aus dem Tunnel-Header kapselt wurde.

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.

RecvdFromTunnelEndPoint

void RecvdFromTunnelEndPoint(
  TunEndPoint *tunEP,
  PacketBuffer *message
)

Handler, der IPv6-Pakete von der Tunnel EndPoint-Schnittstelle empfängt und weiterleitet, entweder an den Dienst über die Dienst-TCP-Verbindung, nachdem das IPv6-Paket im Tunnel-Header gekapselt wurde, oder zum Mobile-Client über einen Shortcut-Tunnel.

Handler, der IPv6-Pakete von der Tunnel EndPoint-Schnittstelle empfängt und weiterleitet, entweder an den Dienst über die Dienst-TCP-Verbindung, nachdem das IPv6-Paket im Tunnel-Header gekapselt wurde, oder zum Mobile-Client über einen lokalen Tunnel.

Wenn die Dienstverbindung noch nicht hergestellt wurde, wird die Nachricht in die Warteschlange gestellt, bis die Verbindung eingerichtet ist. Beim Tunneling zum mobilen Clientgerät wird auf die Tabelle der benachbarten nexthope verwiesen.

Wenn die Dienstverbindung noch nicht hergestellt wurde, wird die Nachricht in die Warteschlange gestellt, bis die Verbindung eingerichtet ist. Beim Tunneling zum mobilen Clientgerät wird auf die Tabelle der benachbarten nexthope verwiesen.

Details
Parameter
[in] tunEP
Ein Zeiger auf das TunEndPoint-Objekt.
[in] message
Ein Zeiger auf das PacketBuffer-Objekt, das das IPv6-Rohpaket enthält.