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 del tunnel in relazione ai suoi collegamenti al Servizio.
AgentState typedef
Stati dell'Agente del tunnel in relazione ai suoi collegamenti al Servizio.
OnServiceTunnelReconnectNotifyFunct)(TunnelType tunType, const char *reconnectHost, const uint16_t reconnectPort, void *appCtxt) typedef
void(*
Puntatore della funzione al gestore impostato da un livello superiore quando il servizio riceve una riconnessione Tunnel.
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 eseguire un controllo online a livello di rete.
WeaveTunnelFlags{
  kTunnelFlag_PrimaryEnabled = 0x01,
  kTunnelFlag_BackupEnabled = 0x02,
  kTunnelFlag_PrimaryRestricted = 0x04,
  kTunnelFlag_BackupRestricted = 0x08
}
enum
Punte a bandiera Weave Tunnel.
WeaveTunnelFlags typedef
Punte a bandiera Weave Tunnel.

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 di Service Manager da utilizzare per cercare e connettersi al servizio.

Funzioni pubbliche

DisablePrimaryTunnel(void)
void
Disattiva tunnel principale.
EnablePrimaryTunnel(void)
void
Attiva tunnel principale.
GetAgentStateName(const AgentState state)
const char *
Prendi 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)
Inizializzare l'agente Tunnel.
Init(InetLayer *inet, WeaveExchangeManager *exchMgr, uint64_t dstNodeId, IPAddress dstIPAddr, WeaveAuthMode authMode, const char *intfName, uint8_t role, void *appContext)
Inizializzare l'agente Tunnel.
IsPrimaryTunnelEnabled(void) const
bool
Verifica 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
Controlla 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 il tempo di riconnessione per il tunnel principale.
SetAuthMode(const WeaveAuthMode authMode)
void
Imposta WeaveAuthMode per il tunnel.
SetDestination(const uint64_t nodeId, const IPAddress ipAddr, const uint16_t servicePort)
void
Imposta l'ID nodo, 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 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
Il gestore riceve i pacchetti IPv6 con tunnel sul tunnel UDP di collegamento tra il gateway di confine e il dispositivo mobile e inoltra all'interfaccia Tunnel EndPoint dopo aver decapsulato il pacchetto IPv6 non elaborato dall'intestazione del tunnel.
RecvdFromTunnelEndPoint(TunEndPoint *tunEP, PacketBuffer *message)
void
Gestore per ricevere i pacchetti IPv6 dall'interfaccia Tunnel EndPoint e inoltrarli al servizio tramite la connessione TCP del servizio dopo l'incapsulamento del pacchetto IPv6 all'interno dell'intestazione del tunnel o al client mobile tramite un tunnel di collegamento.

Tipi pubblici

AgentState

 AgentState

Stati dell'Agente del tunnel in relazione ai suoi collegamenti al Servizio.

Proprietà
kState_BkupOnlyTunModeEstablished

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

kState_Initialized_NoTunnel

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

kState_NotInitialized

Utilizzato per indicare che l'agente Tunnel non è inizializzato.

kState_PrimaryAndBkupTunModeEstablished

Utilizzato per indicare che sono stati creati sia il tunnel principale sia il tunnel di backup.

kState_PrimaryTunModeEstablished

Utilizzato per indicare che è stato creato il tunnel principale al servizio.

AgentState

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

Stati dell'Agente del tunnel in relazione ai suoi collegamenti al Servizio.

OnServiceTunnelReconnectNotifyFunct

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

Puntatore della funzione al gestore impostato da un livello superiore quando il servizio riceve una riconnessione Tunnel.

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 a cui riconnetterti.
[in] appCtxt
Un puntatore a un oggetto di 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 di stato alla richiesta.
[in] err
Si è verificato un errore Weave, se presente
[in] appCtxt
Un puntatore a un oggetto di contesto dell'applicazione

PlatformNetworkOnlineCheck

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

Puntatore di funzione a un gestore fornito dall'applicazione per eseguire 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 di contesto dell'applicazione

WeaveTunnelFlags

 WeaveTunnelFlags

Punte a bandiera Weave Tunnel.

Proprietà
kTunnelFlag_BackupEnabled

Da impostare quando il tunnel di backup è abilitato.

kTunnelFlag_BackupRestricted

Impostato quando il routing del tunnel di backup è limitato.

kTunnelFlag_PrimaryEnabled

Da impostare quando è abilitato il tunnel principale.

kTunnelFlag_PrimaryRestricted

Impostato quando il routing del tunnel principale è limitato.

WeaveTunnelFlags

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

Punte a bandiera Weave Tunnel.

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 di Service Manager da utilizzare per cercare e connettersi al servizio.

Funzioni pubbliche

DisablePrimaryTunnel

void DisablePrimaryTunnel(
  void
)

Disattiva tunnel principale.

Disattivare il tunnel principale.

EnablePrimaryTunnel

void EnablePrimaryTunnel(
  void
)

Attiva tunnel principale.

Attiva il tunnel principale.

GetAgentStateName

const char * GetAgentStateName(
  const AgentState state
)

Prendi il nome WeaveTunnelAgentState.

GetTimeMsec

uint64_t GetTimeMsec(
  void
)

Ottieni il tempo di sistema in millisecondi.

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

GetWeaveTunnelAgentState

AgentState GetWeaveTunnelAgentState(
  void
)

Ottieni lo stato di TunnelAgent.

Dettagli
Restituisce
AgentState lo stato attuale di WeaveTunnelAgent.

Inizia

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

Inizializzare l'agente Tunnel.

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

Inizia

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

Inizializzare l'agente Tunnel.

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

IsPrimaryTunnelEnabled

bool IsPrimaryTunnelEnabled(
  void
) const 

Verifica se il tunnel principale è abilitato.

Dettagli
Restituisce
true se è attivo, 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 è stabilito, ma è soggetto a limitazioni di routing da parte del servizio.

IsTunnelRoutingRestricted

bool IsTunnelRoutingRestricted(
  void
)

Controlla 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. Inoltre, sono soggetti a limitazioni 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 il tempo di riconnessione per il tunnel principale.

Dettagli
Parametri
[in] reconnectImmediately
True se richiesto per riconnettersi immediatamente, altrimenti utilizzando il timeout di riconciliazione configurato.

SetAuthMode

void SetAuthMode(
  const WeaveAuthMode authMode
)

Imposta 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 nodo, l'indirizzo IP e la porta di destinazione per il tunnel.

Imposta l'ID nodo e l'indirizzo IP 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 Dispositivo di tunneling(BorderGateway o Standalone) per il tunnel.

Dettagli
Parametri
[in] role
Ruolo assunto da agente Tunnel; gateway di confine, dispositivo autonomo o dispositivo mobile.

Arresto

WEAVE_ERROR Shutdown(
  void
)

Arresta l'agente Tunnel.

Questa operazione compromette la connessione al servizio e chiude l'interfaccia TunEndPoint dopo la rimozione di indirizzi e route associati all'interfaccia del tunnel.

Questa operazione compromette la connessione al servizio e chiude l'interfaccia TunEndPoint dopo la rimozione di indirizzi e route associati all'interfaccia del tunnel.

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

StartServiceTunnel

WEAVE_ERROR StartServiceTunnel(
  void
)

Avvia il tunnel dei servizi.

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

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

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

StartServiceTunnel

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

Avvia il tunnel dei servizi.

Ciò consente 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, in caso contrario la causa dell'errore verrà comunicata.

WeaveTunnelAgent

 WeaveTunnelAgent(
  void
)

Funzioni statiche pubbliche

RecvdFromShortcutUDPTunnel

void RecvdFromShortcutUDPTunnel(
  WeaveMessageLayer *msgLayer,
  PacketBuffer *message
)

Il gestore riceve i pacchetti IPv6 con tunnel sul tunnel UDP di collegamento tra il gateway di confine e il dispositivo mobile e inoltra all'interfaccia Tunnel EndPoint dopo aver decapsulato il pacchetto IPv6 non elaborato dall'intestazione del tunnel.

Gestore per ricevere i pacchetti IPv6 con tunnel dalla connessione TCP di servizio e inoltrarli all'interfaccia Tunnel EndPoint dopo aver decapsulato il pacchetto IPv6 non elaborato dall'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 con tunnel.

RecvdFromTunnelEndPoint

void RecvdFromTunnelEndPoint(
  TunEndPoint *tunEP,
  PacketBuffer *message
)

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

Gestore per ricevere i pacchetti IPv6 dall'interfaccia Tunnel EndPoint e inoltrarli 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 attiva, il messaggio rimane in coda fino a quando la connessione non viene configurata. Per il tunneling al dispositivo client mobile, viene fatto riferimento alla tabella dei vicini di Nexthop.

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

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