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

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

Questa classe incapsula tutti gli stati delle connessioni del tunnel Weave e la logica e le funzioni di gestione associate.

Riepilogo

Un'istanza di questa classe verrebbe utilizzata per gestire il tunnel su ogni interfaccia attraverso la quale verrebbe creato 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 che il tunnel successivo si connetta.
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 di servizio.
SetInterfaceName(const char *intfName)
void
Imposta InterfaceName per la connessione tunnel.
SetInterfaceType(const SrcInterfaceType srcIntfType)
void
Imposta SrcInterfaceType per la connessione al tunnel.
Shutdown(void)
void
StopAndReconnectTunnelConn(ReconnectParam & reconnParam)
void
Interrompi la connessione al tunnel del servizio e prova di nuovo a riconnetterti.
TryConnectingNow(void)
Tentativo di stabilire una connessione al servizio.

Funzioni statiche pubbliche

DefaultReconnectPolicyCallback(void *const appstate, ReconnectParam & reconnectParam, uint32_t & delayMsec)
void
L'implementazione predefinita dei criteri per il recupero della prossima connessione al servizio.
HandleServiceConnectionClosed(WeaveConnection *con, WEAVE_ERROR conErr)
void
Gestore richiamato quando la connessione TCP del servizio viene chiusa.
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 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.
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 che il tunnel successivo si connetta.

Dettagli
Parametri
[in] appState
Puntatore dello stato dell'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 al tunnel di backup non è riuscito o che un tentativo di connessione esistente è stato interrotto o chiuso localmente dal peer.

kStatus_TunBackupLiveness

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

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 è caduto.

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 un tentativo di connessione esistente è stato interrotto localmente o chiuso dal peer.

kStatus_TunPrimaryLiveness

Utilizzato per indicare informazioni sul probe di attività del tunnel nel tunnel Weave principale.

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 principale di Weave è attivo.

TunnelConnNotifyReasons

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

TunnelConnectionState

 TunnelConnectionState
Proprietà
kState_Connecting

Utilizzato per indicare che la connessione al tunnel Weave è stata avviata.

kState_ConnectionEstablished

Utilizzato per indicare che è stata stabilita la connessione con il tunnel Weave e che viene scambiato le informazioni sul percorso.

kState_NotConnected

Utilizzato per indicare che il tunnel Weave non è collegato.

kState_ReconnectRecvd

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

kState_TunnelClosing

Utilizzato per indicare che il tunnel Weave si chiude e la connessione è in fase di interruzione.

kState_TunnelOpen

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

TunnelConnectionState

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

Attributi pubblici

mServiceConnDelayPolicyCallback

ConnectPolicyCallback mServiceConnDelayPolicyCallback

Funzioni pubbliche

Init

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

ServiceTunnelClose

void ServiceTunnelClose(
  WEAVE_ERROR err
)

Chiudi il tunnel di servizio.

Dettagli
Parametri
[in] err
Un WEAVE_ERROR è stato trasmesso dal chiamante.

SetInterfaceName

void SetInterfaceName(
  const char *intfName
)

Imposta InterfaceName per la connessione al tunnel.

Dettagli
Parametri
[in] tunIntf
L'interfaccia InterfaceName per l'impostazione della connessione del tunnel di servizio.

SetInterfaceType

void SetInterfaceType(
  const SrcInterfaceType srcIntfType
)

Imposta SrcInterfaceType per la connessione al 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 prova di nuovo a riconnetterti.

Dettagli
Parametri
[in] err
Un WEAVE_ERROR è stato trasmesso dal chiamante.

TryConnectingNow

WEAVE_ERROR TryConnectingNow(
  void
)

Tentativo 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 predefinita dei criteri per il recupero della prossima connessione al servizio.

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

Dettagli
Parametri
[in] appState
Puntatore dello stato dell'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 la connessione TCP del servizio viene chiusa.

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 in 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 avvia i comandi di controllo del tunnel al servizio da questa funzione.

Il dispositivo avvia i comandi di controllo del tunnel al servizio da questa funzione.

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

RecvdFromService

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

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.

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.