nl::Weave::Profiles::WeaveTunnel::WeaveTunnelConnectionMgr

#include <src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.h>

Questa classe incapsula tutti gli stati di connessione del tunnel Weave, nonché la logica e le funzioni di gestione associate.

Riepilogo

Viene utilizzata un'istanza di questa classe per gestire il tunnel su ogni interfaccia attraverso la quale esiste il tunnel Weave per il servizio.

Costruttori e distruttori

WeaveTunnelConnectionMgr(void)

Tipi pubblici

ConnectPolicyCallback)(void *const appState, ReconnectParam &reconnectParam, uint32_t &delayMsec) typedef
void(*
Callback per recuperare l'intervallo di tempo di attesa prima della riconnessione del tunnel successivo.
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

Attributi pubblici

mServiceConnDelayPolicyCallback

Funzioni pubbliche

Init(WeaveTunnelAgent *tunAgent, TunnelType tunType, SrcInterfaceType srcIntfType, const char *connIntfName)
ServiceTunnelClose(WEAVE_ERROR err)
void
Chiudi il tunnel del servizio.
SetInterfaceName(const char *intfName)
void
Imposta InterfaceName per la connessione Tunnel.
SetInterfaceType(const SrcInterfaceType srcIntfType)
void
Imposta SrcInterfaceType per la connessione Tunnel.
Shutdown(void)
void
StopAndReconnectTunnelConn(ReconnectParam & reconnParam)
void
Interrompi la connessione al tunnel del servizio e riprova a riconnetterti.
TryConnectingNow(void)
Tentare di stabilire una connessione al servizio.

Funzioni statiche pubbliche

DefaultReconnectPolicyCallback(void *const appstate, ReconnectParam & reconnectParam, uint32_t & delayMsec)
void
L'implementazione del criterio predefinito da recuperare la prossima volta che si connette al servizio.
HandleServiceConnectionClosed(WeaveConnection *con, WEAVE_ERROR conErr)
void
Gestore richiamato quando viene chiusa la connessione TCP del servizio.
HandleServiceConnectionComplete(WeaveConnection *con, WEAVE_ERROR conErr)
void
Gestore richiamato quando viene completata la connessione TCP del servizio.
RecvdFromService(WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *message)
void
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.
ServiceMgrStatusHandler(void *appState, WEAVE_ERROR err, StatusReport *report)
void
Gestore richiamato se il gestore del servizio non è riuscito a stabilire la connessione TCP al servizio.

Tipi pubblici

ConnectPolicyCallback

void(* ConnectPolicyCallback)(void *const appState, ReconnectParam &reconnectParam, uint32_t &delayMsec)

Callback per recuperare l'intervallo di tempo di attesa prima della riconnessione del tunnel successivo.

Dettagli
Parametri
[in] appState
Puntatore stato app impostato durante l'inizializzazione di SubscriptionClient.
[in] reconnectParam
Struttura con parametri che influenzano il calcolo del ritardo di riconnessione.
[out] delayMsec
Tempo di attesa in millisecondi prima del prossimo tentativo di riconnessione.

TunnelConnNotifyReasons

 TunnelConnNotifyReasons
Proprietà
kStatus_TunBackupConnError

Utilizzato per indicare che un tentativo di connessione del tunnel di backup non è riuscito o che uno esistente è stato interrotto o chiuso localmente dal peer.

kStatus_TunBackupLiveness

Utilizzato per indicare le informazioni sul probe di attività del tunnel sul tunnel di backup Weave.

kStatus_TunBackupOnlyDown

Utilizzato per indicare che il tunnel di backup non è attivo.

kStatus_TunBackupReconnectRcvd

Utilizzato per indicare che il servizio ha richiesto una riconnessione per il tunnel Weave di backup.

kStatus_TunBackupUp

Utilizzato per indicare che il tunnel Weave di backup è attivo.

kStatus_TunDown

Utilizzato per indicare che il tunnel Weave è diminuito.

kStatus_TunFailoverToBackup

Utilizzato per indicare che il tunnel principale non è attivo e che si è verificato il passaggio al tunnel di backup.

kStatus_TunPrimaryAndBackupUp

Utilizzato per indicare che il tunnel Weave principale e quello di backup sono attivi.

kStatus_TunPrimaryConnError

Utilizzato per indicare che un tentativo di connessione al tunnel principale non è riuscito o che uno esistente è stato interrotto o chiuso localmente dal peer.

kStatus_TunPrimaryLiveness

Utilizzato per indicare le informazioni sul probe di attività del tunnel sul tunnel Weave primario.

kStatus_TunPrimaryReconnectRcvd

Utilizzato per indicare che il servizio ha richiesto una riconnessione per il tunnel Weave principale.

kStatus_TunPrimaryUp

Utilizzato per indicare che il tunnel Weave principale è aperto.

TunnelConnNotifyReasons

enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelConnectionMgr::TunnelConnNotifyReasons TunnelConnNotifyReasons

TunnelConnectionState

 TunnelConnectionState
Proprietà
kState_Connecting

Utilizzato per indicare che la connessione Weave Tunnel è stata avviata.

kState_ConnectionEstablished

Utilizzato per indicare che la connessione al Weave Tunnel viene stabilita e che le informazioni sul percorso vengono scambiate.

kState_NotConnected

Utilizzato per indicare che il tunnel Weave non è connesso.

kState_ReconnectRecvd

Utilizzato per indicare che il servizio vuole che il gateway di confine si riconnetta dopo una ricerca nella directory.

kState_TunnelClosing

Utilizzato per indicare che il tunnel Weave è in fase di chiusura e la connessione viene interrotta.

kState_TunnelOpen

Utilizzato per indicare che il tunnel Weave è aperto e pronto per il traffico di dati in transito.

TunnelConnectionState

enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelConnectionMgr::TunnelConnectionState TunnelConnectionState

Attributi pubblici

mServiceConnDelayPolicyCallback

ConnectPolicyCallback mServiceConnDelayPolicyCallback

Funzioni pubbliche

Inizia

WEAVE_ERROR Init(
  WeaveTunnelAgent *tunAgent,
  TunnelType tunType,
  SrcInterfaceType srcIntfType,
  const char *connIntfName
)

ServiceTunnelClose

void ServiceTunnelClose(
  WEAVE_ERROR err
)

Chiudi il tunnel del servizio.

Dettagli
Parametri
[in] err
WEAVE_ERROR trasmesso dal chiamante.

SetInterfaceName

void SetInterfaceName(
  const char *intfName
)

Imposta InterfaceName per la connessione Tunnel.

Dettagli
Parametri
[in] tunIntf
Il parametro InterfaceName per impostare la connessione del tunnel di servizio.

SetInterfaceType

void SetInterfaceType(
  const SrcInterfaceType srcIntfType
)

Imposta SrcInterfaceType per la connessione Tunnel.

Dettagli
Parametri
[in] srcIntfType
Il tipo di tecnologia di rete dell'interfaccia per la connessione al tunnel di servizio.

Arresto

void Shutdown(
  void
)

StopAndReconnectTunnelConn

void StopAndReconnectTunnelConn(
  ReconnectParam & reconnParam
)

Interrompi la connessione al tunnel del servizio e riprova a riconnetterti.

Dettagli
Parametri
[in] err
WEAVE_ERROR trasmesso dal chiamante.

TryConnectingNow

WEAVE_ERROR TryConnectingNow(
  void
)

Tentare di stabilire una connessione al servizio.

Prova a stabilire una connessione al servizio utilizzando ServiceManager o direttamente.

WeaveTunnelConnectionMgr

 WeaveTunnelConnectionMgr(
  void
)

Funzioni statiche pubbliche

DefaultReconnectPolicyCallback

void DefaultReconnectPolicyCallback(
  void *const appstate,
  ReconnectParam & reconnectParam,
  uint32_t & delayMsec
)

L'implementazione del criterio predefinito da recuperare la prossima volta che si connette al servizio.

Questo criterio sceglie una fascia oraria casuale (con risoluzione in millisecondi) su una finestra crescente, seguendo una sequenza di Fibonacci fino a WEAVE_CONFIG_tunnelING_RECONNECT_MAX_FIBONACCI_INDEX.

Dettagli
Parametri
[in] appState
Puntatore stato app impostato durante l'inizializzazione di SubscriptionClient.
[in] reconnectParam
Struttura con parametri che influenzano il calcolo del ritardo di riconnessione.
[out] delayMsec
Tempo di attesa in millisecondi prima del prossimo tentativo di riconnessione.

HandleServiceConnectionClosed

void HandleServiceConnectionClosed(
  WeaveConnection *con,
  WEAVE_ERROR conErr
)

Gestore richiamato quando viene chiusa la connessione TCP del servizio.

Il dispositivo tenta di ristabilire la connessione al servizio se mServiceConKeepAlive è impostato su true.

Il dispositivo, successivamente, tenta di ristabilire la connessione al Servizio.

Dettagli
Parametri
[in] con
Un puntatore all'oggetto WeaveConnection.
[in] conErr
Qualsiasi errore all'interno di WeaveConnection o WEAVE_NO_ERROR.

HandleServiceConnectionComplete

void HandleServiceConnectionComplete(
  WeaveConnection *con,
  WEAVE_ERROR conErr
)

Gestore richiamato quando viene completata la connessione TCP del servizio.

Il dispositivo procede ad avviare i comandi di controllo Tunnel per il servizio da questa funzione.

Il dispositivo procede ad avviare i comandi di controllo Tunnel per il servizio da questa funzione.

Dettagli
Parametri
[in] con
Un puntatore all'oggetto WeaveConnection.
[in] conErr
Qualsiasi errore all'interno di WeaveConnection o WEAVE_NO_ERROR.

RecvdFromService

void RecvdFromService(
  WeaveConnection *con,
  const WeaveMessageInfo *msgInfo,
  PacketBuffer *message
)

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.

ServiceMgrStatusHandler

void ServiceMgrStatusHandler(
  void *appState,
  WEAVE_ERROR err,
  StatusReport *report
)

Gestore richiamato se il gestore del servizio non è riuscito a stabilire la connessione TCP al servizio.