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

Riepilogo

Costruttori e distruttori

WeaveTunnelAgent(void)

Tipi pubblici

AgentState{
  kState_NotInitialized = 0,
  kState_Initialized_NoTunnel = 1,
  kState_PrimaryTunModeEstablished = 2,
  kState_BkupOnlyTunModeEstablished = 3,
  kState_PrimaryAndBkupTunModeEstablished = 4
}
enum
Stati dell'Agente Tunnel in relazione alle sue connessioni al Servizio.
AgentState typedef
Stati dell'Agente Tunnel in relazione alle sue connessioni al Servizio.
OnServiceTunnelReconnectNotifyFunct)(TunnelType tunType, const char *reconnectHost, const uint16_t reconnectPort, void *appCtxt) typedef
void(*
Puntatore di funzione al gestore impostato da un livello superiore quando viene ricevuta una riconnessione Tunnel dal servizio.
OnServiceTunnelStatusNotifyFunct)(WeaveTunnelConnectionMgr::TunnelConnNotifyReasons reason, WEAVE_ERROR err, void *appCtxt) typedef
void(*
Puntatore di funzione al gestore impostato da un livello superiore per agire su varie notifiche relative al tunnel al servizio.
PlatformNetworkOnlineCheck)(TunnelType tunType, void *appCtxt) typedef
void(*
Puntatore di funzione a un gestore fornito dall'applicazione per l'esecuzione di un controllo online a livello di rete.
WeaveTunnelFlags{
  kTunnelFlag_PrimaryEnabled = 0x01,
  kTunnelFlag_BackupEnabled = 0x02,
  kTunnelFlag_PrimaryRestricted = 0x04,
  kTunnelFlag_BackupRestricted = 0x08
}
enum
Punte di segnalazione dei tunnel intrecciati.
WeaveTunnelFlags typedef
Punte di segnalazione dei tunnel intrecciati.

Attributi pubblici

NetworkOnlineCheck
OnServiceTunReconnectNotify
OnServiceTunStatusNotify
Puntatore di funzione al gestore impostato da un livello superiore per agire su varie notifiche relative al tunnel al servizio.
mServiceMgr
WeaveServiceManager *
Puntatore del gestore di servizi da utilizzare per cercare e connettersi al servizio.

Funzioni pubbliche

DisablePrimaryTunnel(void)
void
Disattiva il tunnel principale.
EnablePrimaryTunnel(void)
void
Attiva tunnel principale.
GetAgentStateName(const AgentState state)
const char *
Ottieni il nome WeaveTunnelAgentState.
GetTimeMsec(void)
uint64_t
Ottieni il tempo di sistema in millisecondi.
GetWeaveTunnelAgentState(void)
Ottieni lo stato di TunnelAgent.
Init(InetLayer *inet, WeaveExchangeManager *exchMgr, uint64_t dstNodeId, WeaveAuthMode authMode, WeaveServiceManager *svcMgr, const char *intfName, uint8_t role, void *appContext)
Inizializza l'agente Tunnel.
Init(InetLayer *inet, WeaveExchangeManager *exchMgr, uint64_t dstNodeId, IPAddress dstIPAddr, WeaveAuthMode authMode, const char *intfName, uint8_t role, void *appContext)
Inizializza l'agente Tunnel.
IsPrimaryTunnelEnabled(void) const
bool
Controlla se il tunnel principale è abilitato.
IsPrimaryTunnelRoutingRestricted(void)
bool
Verifica se il tunnel principale è soggetto a limitazioni di routing da parte del servizio.
IsTunnelRoutingRestricted(void)
bool
Verifica se il tunnel è soggetto a limitazioni di routing da parte del servizio.
NetworkOnlineCheckResult(TunnelType tunType, bool isOnline)
void
Callback richiamato dalla piattaforma quando è disponibile il risultato del controllo online della rete.
ResetPrimaryReconnectBackoff(bool reconnectImmediately)
Reimposta l'ora di riconnessione per il tunnel principale.
SetAuthMode(const WeaveAuthMode authMode)
void
Imposta il valore WeaveAuthMode per il tunnel.
SetDestination(const uint64_t nodeId, const IPAddress ipAddr, const uint16_t servicePort)
void
Imposta l'ID nodeId, l'indirizzo IP e la porta di destinazione per il tunnel.
SetTunnelingDeviceRole(const Role role)
void
Imposta il ruolo del dispositivo di tunneling(BorderGateway, StandaloneDevice, MobileDevice) per il tunnel.
Shutdown(void)
Arresta l'agente del tunnel.
StartServiceTunnel(void)
Avvia il tunnel dei servizi.
StartServiceTunnel(uint64_t dstNodeId, IPAddress dstIPAddr, WeaveAuthMode authMode)
Avvia il tunnel dei servizi.
StopServiceTunnel(void)
void
Chiudi la connessione tunnel al servizio.
StopServiceTunnel(WEAVE_ERROR err)
void
Chiudi la connessione tunnel al servizio.

Funzioni statiche pubbliche

RecvdFromShortcutUDPTunnel(WeaveMessageLayer *msgLayer, PacketBuffer *message)
void
Gestore per la ricezione di pacchetti IPv6 in tunnel tramite il tunnel UDP collegamento tra il gateway di confine e il dispositivo mobile e l'inoltro all'interfaccia Tunnel EndPoint dopo la decapsulamento del pacchetto IPv6 non elaborato dall'interno dell'intestazione del tunnel.
RecvdFromTunnelEndPoint(TunEndPoint *tunEP, PacketBuffer *message)
void
Gestore per la ricezione di pacchetti IPv6 dall'interfaccia Tunnel EndPoint e l'inoltro, al servizio tramite la connessione TCP del servizio dopo l'incapsulamento del pacchetto IPv6 all'interno dell'intestazione del tunnel o al client mobile su un tunnel di collegamento.

Tipi pubblici

AgentState

 AgentState

Stati dell'Agente Tunnel in relazione alle sue connessioni al Servizio.

Proprietà
kState_BkupOnlyTunModeEstablished

Utilizzato per indicare che il tunnel di backup per il servizio è stato stabilito.

kState_Initialized_NoTunnel

Utilizzato per indicare che l'agente tunnel è stato inizializzato, ma non è stato stabilito alcun tunnel.

kState_NotInitialized

Utilizzato per indicare che l'agente tunnel non è stato inizializzato.

kState_PrimaryAndBkupTunModeEstablished

Utilizzato per indicare che è stato stabilito il tunnel principale e il tunnel di backup.

kState_PrimaryTunModeEstablished

Utilizzato per indicare che è stato stabilito il tunnel principale per il servizio.

AgentState

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

Stati dell'Agente Tunnel in relazione alle sue connessioni al Servizio.

OnServiceTunnelReconnectNotifyFunct

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

Puntatore di funzione al gestore impostato da un livello superiore quando viene ricevuta una riconnessione Tunnel dal servizio.

Dettagli
Parametri
[in] tunType
Il tipo di tunnel: Principale o Backup.
[in] reconnectHost
Il nome host fornito dal servizio a cui riconnetterti.
[in] reconnectPort
La porta di destinazione fornita dal servizio per riconnettersi.
[in] appCtxt
Un puntatore a un oggetto contesto dell'applicazione

OnServiceTunnelStatusNotifyFunct

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

Puntatore di funzione al gestore impostato da un livello superiore per agire su varie notifiche relative al tunnel al servizio.

Dettagli
Parametri
[in] reason
Il motivo della notifica dello stato inviata all'applicazione.
[in] err
Si è verificato un errore Weave, se presente
[in] appCtxt
Un puntatore a un oggetto contesto dell'applicazione

PlatformNetworkOnlineCheck

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

Puntatore di funzione a un gestore fornito dall'applicazione per l'esecuzione di un controllo online a livello di rete.

Dettagli
Parametri
[in] tunType
Il tipo di tunnel: Principale o Backup.
[in] appCtxt
Un puntatore a un oggetto contesto dell'applicazione

WeaveTunnelFlags

 WeaveTunnelFlags

Punte di segnalazione dei tunnel intrecciati.

Proprietà
kTunnelFlag_BackupEnabled

Imposta quando è abilitato il tunnel di backup.

kTunnelFlag_BackupRestricted

Impostato quando il tunnel di backup è limitato.

kTunnelFlag_PrimaryEnabled

Imposta quando è abilitato il tunnel principale.

kTunnelFlag_PrimaryRestricted

Impostato quando il tunnel principale è limitato per il routing.

WeaveTunnelFlags

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

Punte di segnalazione dei tunnel intrecciati.

Attributi pubblici

NetworkOnlineCheck

PlatformNetworkOnlineCheck NetworkOnlineCheck

OnServiceTunReconnectNotify

OnServiceTunnelReconnectNotifyFunct OnServiceTunReconnectNotify

OnServiceTunStatusNotify

OnServiceTunnelStatusNotifyFunct OnServiceTunStatusNotify

Puntatore di funzione al gestore impostato da un livello superiore per agire su varie notifiche relative al tunnel al servizio.

mServiceMgr

WeaveServiceManager * mServiceMgr

Puntatore del gestore di servizi da utilizzare per cercare e connettersi al servizio.

Funzioni pubbliche

DisablePrimaryTunnel

void DisablePrimaryTunnel(
  void
)

Disattiva il tunnel principale.

Disattiva il tunnel principale.

EnablePrimaryTunnel

void EnablePrimaryTunnel(
  void
)

Attiva tunnel principale.

Attiva il tunnel principale.

GetAgentStateName

const char * GetAgentStateName(
  const AgentState state
)

Ottieni il nome WeaveTunnelAgentState.

GetTimeMsec

uint64_t GetTimeMsec(
  void
)

Ottieni il tempo di sistema in millisecondi.

Ottieni l'ora di sistema o il tempo monotonico in millisecondi se l'ora di sistema non è disponibile.

di Gemini Advanced.

GetWeaveTunnelAgentState

AgentState GetWeaveTunnelAgentState(
  void
)

Ottieni lo stato di TunnelAgent.

Dettagli
Restituisce
AgentState lo stato attuale di WeaveTunnelAgent.

Init

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

Inizializza l'agente Tunnel.

Questa operazione crea l'oggetto endpoint del tunnel, configura l'interfaccia del tunnel, inizializza le variabili dei membri, i callback e WeaveTunnelControl.

Init

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

Inizializza l'agente Tunnel.

Questa operazione crea l'oggetto endpoint del tunnel, configura l'interfaccia del tunnel, inizializza le variabili dei membri, i callback e WeaveTunnelControl.

IsPrimaryTunnelEnabled

bool IsPrimaryTunnelEnabled(
  void
) const 

Controlla se il tunnel principale è abilitato.

Dettagli
Restituisce
true se abilitata, altrimenti false.

IsPrimaryTunnelRoutingRestricted

bool IsPrimaryTunnelRoutingRestricted(
  void
)

Verifica se il tunnel principale è soggetto a limitazioni di routing da parte del servizio.

Controlla se il tunnel principale è soggetto a limitazioni di routing.

Dettagli
Restituisce
true se il tunnel principale viene impostato, ma è soggetto a restrizioni di routing da parte del servizio.

IsTunnelRoutingRestricted

bool IsTunnelRoutingRestricted(
  void
)

Verifica se il tunnel è soggetto a limitazioni di routing da parte del servizio.

Controlla se il tunnel è soggetto a limitazioni di routing.

Dettagli
Restituisce
true se viene stabilito il tunnel principale o di backup e se quest'ultimo è soggetto a restrizioni di routing da parte del servizio.

NetworkOnlineCheckResult

void NetworkOnlineCheckResult(
  TunnelType tunType,
  bool isOnline
)

Callback richiamato dalla piattaforma quando è disponibile il risultato del controllo online della rete.

Dettagli
Parametri
[in] tunType
Il tipo di tunnel corrispondente all'interfaccia su cui viene eseguito il controllo della connettività di rete.
[in] isOnline
True se la rete è online, false negli altri casi.

ResetPrimaryReconnectBackoff

WEAVE_ERROR ResetPrimaryReconnectBackoff(
  bool reconnectImmediately
)

Reimposta l'ora di riconnessione per il tunnel principale.

Dettagli
Parametri
[in] reconnectImmediately
True se necessario per riconnettersi immediatamente, altrimenti viene utilizzato il timeout di riconciliazione configurato.

SetAuthMode

void SetAuthMode(
  const WeaveAuthMode authMode
)

Imposta il valore WeaveAuthMode per il tunnel.

Dettagli
Parametri
[in] authMode
Modalità di autenticazione Weave utilizzata con il peer.

SetDestination

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

Imposta l'ID nodeId, l'indirizzo IP e la porta di destinazione per il tunnel.

Imposta il nodeId e l'IPAddress di destinazione per il tunnel.

Dettagli
Parametri
[in] nodeId
ID nodo del nodo di destinazione.
[in] ipAddr
Indirizzo IP del nodo di destinazione.
[in] servicePort
Porta del nodo di destinazione.

SetTunnelingDeviceRole

void SetTunnelingDeviceRole(
  const Role role
)

Imposta il ruolo del dispositivo di tunneling(BorderGateway, StandaloneDevice, MobileDevice) per il tunnel.

Imposta il ruolo del dispositivo di tunneling(BorderGateway o Autonomo) per il tunnel.

Dettagli
Parametri
[in] role
Ruolo assunto dall'agente Tunnel; Gateway di confine, autonomo o dispositivo mobile.

Arresto

WEAVE_ERROR Shutdown(
  void
)

Arresta l'agente del tunnel.

Questo interrompe la connessione al servizio e chiude l'interfaccia TunEndPoint dopo aver rimosso gli indirizzi e le route associati all'interfaccia del tunnel.

Questo interrompe la connessione al servizio e chiude l'interfaccia TunEndPoint dopo aver rimosso gli indirizzi e le route associati all'interfaccia del tunnel.

Dettagli
Restituisce
WEAVE_NO_ERROR in caso di esito positivo, altrimenti un tipo di WEAVE_ERROR corrispondente.

StartServiceTunnel

WEAVE_ERROR StartServiceTunnel(
  void
)

Avvia il tunnel dei servizi.

Ciò abilita il tunnel e tenta di stabilire una connessione al servizio.

Questo tenta di stabilire una connessione al servizio e imposta anche la route del fabric per l'interfaccia del tunnel.

Dettagli
Restituisce
WEAVE_NO_ERROR in caso di esito positivo, altrimenti un tipo di WEAVE_ERROR corrispondente.

StartServiceTunnel

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

Avvia il tunnel dei servizi.

Ciò abilita il tunnel e tenta di stabilire una connessione al servizio.

StopServiceTunnel

void StopServiceTunnel(
  void
)

Chiudi la connessione tunnel al servizio.

StopServiceTunnel

void StopServiceTunnel(
  WEAVE_ERROR err
)

Chiudi la connessione tunnel al servizio.

Dettagli
Parametri
[in] err
WEAVE_NO_ERROR se non esiste un motivo specifico per questa richiesta StopServiceTunnel, altrimenti la causa dell'errore viene ignorata.

WeaveTunnelAgent

 WeaveTunnelAgent(
  void
)

Funzioni statiche pubbliche

RecvdFromShortcutUDPTunnel

void RecvdFromShortcutUDPTunnel(
  WeaveMessageLayer *msgLayer,
  PacketBuffer *message
)

Gestore per la ricezione di pacchetti IPv6 in tunnel tramite il tunnel UDP collegamento tra il gateway di confine e il dispositivo mobile e l'inoltro all'interfaccia Tunnel EndPoint dopo la decapsulamento del pacchetto IPv6 non elaborato dall'interno dell'intestazione del tunnel.

Gestore per la ricezione dei pacchetti IPv6 in tunnel dalla connessione TCP del servizio e l'inoltro all'interfaccia Tunnel EndPoint dopo la decapsulamento del pacchetto IPv6 non elaborato dall'interno dell'intestazione del tunnel.

Dettagli
Parametri
[in] con
Un puntatore all'oggetto WeaveConnection.
[in] msgInfo
Un puntatore all'oggetto WeaveMessageInfo.
[in] message
Un puntatore all'oggetto PacketBuffer che contiene il pacchetto IPv6 in tunnel.

RecvdFromTunnelEndPoint

void RecvdFromTunnelEndPoint(
  TunEndPoint *tunEP,
  PacketBuffer *message
)

Gestore per la ricezione di pacchetti IPv6 dall'interfaccia Tunnel EndPoint e l'inoltro, al servizio tramite la connessione TCP del servizio dopo l'incapsulamento del pacchetto IPv6 all'interno dell'intestazione del tunnel o al client mobile su un tunnel di collegamento.

Gestore per la ricezione di pacchetti IPv6 dall'interfaccia Tunnel EndPoint e l'inoltro, al servizio tramite la connessione TCP del servizio dopo l'incapsulamento del pacchetto IPv6 all'interno dell'intestazione del tunnel o al client mobile su un tunnel locale.

Se la connessione al servizio non è ancora stabilita, il messaggio viene messo in coda fino a quando la connessione non è configurata. Per il tunneling al dispositivo client mobile, viene fatto riferimento alla tabella dei vicini nexthop.

Se la connessione al servizio non è ancora stabilita, il messaggio viene messo in coda fino a quando la connessione non è configurata. Per il tunneling al dispositivo client mobile, viene fatto riferimento alla tabella dei vicini nexthop.

Dettagli
Parametri
[in] tunEP
Un puntatore all'oggetto TunEndPoint.
[in] message
Un puntatore all'oggetto PacketBuffer che contiene il pacchetto IPv6 non elaborato.