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 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 so festgelegt wird, dass er auf verschiedene Benachrichtigungen im Zusammenhang mit dem Tunnel zum Dienst reagiert.
PlatformNetworkOnlineCheck)(TunnelType tunType, void *appCtxt) typedef
void(*
Funktionszeiger auf einen Handler, der von der Anwendung zur Durchführung einer Online-Prüfung auf Netzwerkebene bereitgestellt wird.
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 so festgelegt wird, dass er auf verschiedene Benachrichtigungen im Zusammenhang mit dem Tunnel zum Dienst reagiert.
mServiceMgr
WeaveServiceManager *
Service Manager-Zeiger zum Suchen und Verbinden mit dem Dienst.

Öffentliche Funktionen

DisablePrimaryTunnel(void)
void
Deaktivieren Sie den primären Tunnel.
EnablePrimaryTunnel(void)
void
Primären Tunnel aktivieren.
GetAgentStateName(const AgentState state)
const char *
Rufen Sie den WeaveTunnelAgentState-Namen 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 Callback, wenn das Ergebnis der Netzwerk-Online-Prüfung verfügbar ist.
ResetPrimaryReconnectBackoff(bool reconnectImmediately)
Setzen Sie die Zeit für die Wiederherstellung der Verbindung für den primären Tunnel zurück.
SetAuthMode(const WeaveAuthMode authMode)
void
Legen Sie 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 Tunnels als Ziel fest.
SetTunnelingDeviceRole(const Role role)
void
Legen Sie die Tunneling-Geräterolle(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
Tunnelverbindung zum Dienst schließen.
StopServiceTunnel(WEAVE_ERROR err)
void
Tunnelverbindung zum Dienst schließen.

Öffentliche statische Funktionen

RecvdFromShortcutUDPTunnel(WeaveMessageLayer *msgLayer, PacketBuffer *message)
void
Handler für den Empfang getunnelter IPv6-Pakete über den Shortcut-UDP-Tunnel zwischen dem Border Gateway und dem Mobilgerät und zur Weiterleitung an die Tunnel EndPoint-Schnittstelle, nachdem das IPv6-Rohpaket aus dem Tunnelheader entkapselt wurde.
RecvdFromTunnelEndPoint(TunEndPoint *tunEP, PacketBuffer *message)
void
Handler zum Empfang von IPv6-Paketen von der Tunnel EndPoint-Schnittstelle und zum Weiterleiten an den Dienst über die Dienst-TCP-Verbindung, nachdem das IPv6-Paket im Tunnel-Header gekapselt wurde, oder an den 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 anzugeben, dass der Sicherungstunnel zum Dienst eingerichtet wurde.

kState_Initialized_NoTunnel

Wird verwendet, um anzuzeigen, dass der Tunnel-Agent initialisiert, 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 als auch der Sicherungstunnel eingerichtet wurden.

kState_PrimaryTunModeEstablished

Wird verwendet, um anzugeben, 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 Handler, der von einer höheren Ebene festgelegt wird, wenn eine Tunnel-Neuverbindung vom Dienst empfangen wird.

Details
Parameter
[in] tunType
Der Tunneltyp, „Primär“ oder „Sicherung“.
[in] reconnectHost
Der vom Dienst zur erneuten Verbindung bereitgestellte Hostname.
[in] reconnectPort
Der Zielport, der vom Dienst bereitgestellt wird, um die Verbindung wiederherzustellen.
[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 so festgelegt wird, dass er auf verschiedene Benachrichtigungen im Zusammenhang mit dem Tunnel zum Dienst reagiert.

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 Handler, der von der Anwendung zur Durchführung einer Online-Prüfung auf Netzwerkebene bereitgestellt wird.

Details
Parameter
[in] tunType
Der Tunneltyp, „Primär“ oder „Sicherung“.
[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

Legen Sie fest, wann das Routing des Sicherungstunnels eingeschränkt ist.

kTunnelFlag_PrimaryEnabled

Wird festgelegt, wenn der primäre Tunnel aktiviert ist.

kTunnelFlag_PrimaryRestricted

Legen Sie fest, wann 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 so festgelegt wird, dass er auf verschiedene Benachrichtigungen im Zusammenhang mit dem Tunnel zum Dienst reagiert.

mServiceMgr

WeaveServiceManager * mServiceMgr

Service Manager-Zeiger zum Suchen und Verbinden mit dem Dienst.

Öffentliche Funktionen

DisablePrimaryTunnel

void DisablePrimaryTunnel(
  void
)

Deaktivieren Sie den primären Tunnel.

Deaktivieren Sie den primären Tunnel.

EnablePrimaryTunnel

void EnablePrimaryTunnel(
  void
)

Primären Tunnel aktivieren.

Aktivieren Sie den primären Tunnel.

GetAgentStateName

const char * GetAgentStateName(
  const AgentState state
)

Rufen Sie den WeaveTunnelAgentState-Namen ab.

GetTimeMsec

uint64_t GetTimeMsec(
  void
)

Rufen Sie die Systemzeit in Millisekunden ab.

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

.

GetWeaveTunnelAgentState

AgentState GetWeaveTunnelAgentState(
  void
)

Rufen Sie den TunnelAgent-Status ab.

Details
Rückgabe
AgentState ist der aktuelle Status des 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 das Tunnel-Endpunktobjekt erstellt, die Tunnelschnittstelle eingerichtet, Mitgliedsvariablen, Callbacks und WeaveTunnelControl initialisiert werden.

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 das Tunnel-Endpunktobjekt erstellt, die Tunnelschnittstelle eingerichtet, Mitgliedsvariablen, Callbacks und WeaveTunnelControl initialisiert werden.

IsPrimaryTunnelEnabled

bool IsPrimaryTunnelEnabled(
  void
) const 

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

Details
Rückgabe
"true", wenn es aktiviert ist, 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 ist, aber Routingeinschränkungen des Dienstes 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 oder der Sicherungstunnel eingerichtet wurde und beide den Routingbeschränkungen des Dienstes unterliegen.

NetworkOnlineCheckResult

void NetworkOnlineCheckResult(
  TunnelType tunType,
  bool isOnline
)

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

Details
Parameter
[in] tunType
Der Tunneltyp, der der Schnittstelle entspricht, über die die Prüfung der Netzwerkverbindung durchgeführt wird.
[in] isOnline
„True“, wenn das Netzwerk online ist, andernfalls „false“.

ResetPrimaryReconnectBackoff

WEAVE_ERROR ResetPrimaryReconnectBackoff(
  bool reconnectImmediately
)

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

Details
Parameter
[in] reconnectImmediately
„True“, wenn die Verbindung sofort wiederhergestellt werden muss, andernfalls wird das konfigurierte Zeitlimit für Wiederherstellungen verwendet.

SetAuthMode

void SetAuthMode(
  const WeaveAuthMode authMode
)

Legen Sie WeaveAuthMode für den Tunnel fest.

Details
Parameter
[in] authMode
Bei Peer verwendeter Weave-Authentifizierungsmodus.

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 Tunnels als Ziel 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 Tunneling-Geräterolle(BorderGateway, StandaloneDevice, MobileDevice) für den Tunnel fest.

Legen Sie die Tunneling-Geräterolle(BorderGateway vs. Standalone) für den Tunnel fest.

Details
Parameter
[in] role
Vom Tunnel-Agent übernommene Rolle; Border Gateway, Standalone oder Mobilgerät.

Herunterfahren

WEAVE_ERROR Shutdown(
  void
)

Fahren Sie den Tunnel-Agent herunter.

Dadurch wird die Verbindung zum Dienst unterbrochen und die TunEndPoint-Schnittstelle wird geschlossen, nachdem Adressen und Routen entfernt wurden, die mit der Tunnelschnittstelle verknüpft sind.

Dadurch wird die Verbindung zum Dienst unterbrochen und die TunEndPoint-Schnittstelle wird geschlossen, nachdem Adressen und Routen entfernt wurden, die mit der Tunnelschnittstelle verknüpft sind.

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

StartServiceTunnel

WEAVE_ERROR StartServiceTunnel(
  void
)

Starten Sie den Diensttunnel.

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

Dadurch wird versucht, eine Verbindung zum Dienst herzustellen, und die Fabric-Route wird auf die Tunnelschnittstelle festgelegt.

Details
Rückgabe
WEAVE_NO_ERROR bei Erfolg, andernfalls 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 versucht, eine Verbindung zum Dienst herzustellen.

StopServiceTunnel

void StopServiceTunnel(
  void
)

Tunnelverbindung zum Dienst schließen.

StopServiceTunnel

void StopServiceTunnel(
  WEAVE_ERROR err
)

Tunnelverbindung zum Dienst schließen.

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

WeaveTunnelAgent

 WeaveTunnelAgent(
  void
)

Öffentliche statische Funktionen

RecvdFromShortcutUDPTunnel

void RecvdFromShortcutUDPTunnel(
  WeaveMessageLayer *msgLayer,
  PacketBuffer *message
)

Handler für den Empfang getunnelter IPv6-Pakete über den Shortcut-UDP-Tunnel zwischen dem Border Gateway und dem Mobilgerät und zur Weiterleitung an die Tunnel EndPoint-Schnittstelle, nachdem das IPv6-Rohpaket aus dem Tunnelheader entkapselt wurde.

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.

RecvdFromTunnelEndPoint

void RecvdFromTunnelEndPoint(
  TunEndPoint *tunEP,
  PacketBuffer *message
)

Handler zum Empfang von IPv6-Paketen von der Tunnel EndPoint-Schnittstelle und zum Weiterleiten an den Dienst über die Dienst-TCP-Verbindung, nachdem das IPv6-Paket im Tunnel-Header gekapselt wurde, oder an den Mobile-Client über einen Shortcut-Tunnel.

Handler zum Empfang von IPv6-Paketen von der Tunnel EndPoint-Schnittstelle und zum Weiterleiten an den Dienst über die Dienst-TCP-Verbindung, nachdem das IPv6-Paket im Tunnelheader gekapselt wurde, oder an den Mobile-Client über einen lokalen Tunnel.

Wenn die Dienstverbindung noch nicht hergestellt ist, wird die Nachricht in die Warteschlange gestellt, bis die Verbindung eingerichtet ist. Beim Tunneling zum mobilen Clientgerät wird auf die Nachbartabelle des nächsten Hops verwiesen.

Wenn die Dienstverbindung noch nicht hergestellt ist, wird die Nachricht in die Warteschlange gestellt, bis die Verbindung eingerichtet ist. Beim Tunneling zum mobilen Clientgerät wird auf die Nachbartabelle des nächsten Hops verwiesen.

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