nl:: Weave:: Profiles:: WeaveTunnel:: WeaveTunnelConnectionMgr
#include <src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.h>
Cette classe encapsule tous les états de connexion du tunnel Weave, ainsi que la logique et les fonctions de gestion associées.
Résumé
Une instance de cette classe serait utilisée pour gérer le tunnel sur chaque interface via laquelle le tunnel Weave vers le service existerait.
Constructeurs et destructeurs |
|
---|---|
WeaveTunnelConnectionMgr(void)
|
Types publics |
|
---|---|
ConnectPolicyCallback)(void *const appState, ReconnectParam &reconnectParam, uint32_t &delayMsec)
|
typedefvoid(*
Rappel permettant de récupérer l'intervalle de temps d'attente avant que le prochain tunnel se reconnecte. |
TunnelConnNotifyReasons{
|
enum |
TunnelConnNotifyReasons
|
typedef |
TunnelConnectionState{
|
enum |
TunnelConnectionState
|
typedef |
Attributs publics |
|
---|---|
mServiceConnDelayPolicyCallback
|
Fonctions publiques |
|
---|---|
Init(WeaveTunnelAgent *tunAgent, TunnelType tunType, SrcInterfaceType srcIntfType, const char *connIntfName)
|
Initialisez WeaveTunnelConnectionMgr.
|
ServiceTunnelClose(WEAVE_ERROR err)
|
void
Fermez le tunnel de service.
|
SetInterfaceName(const char *intfName)
|
void
Définissez InterfaceName pour la connexion au tunnel.
|
SetInterfaceType(const SrcInterfaceType srcIntfType)
|
void
Définissez SrcInterfaceType pour la connexion de tunnel.
|
Shutdown(void)
|
void
Arrêtez WeaveTunnelConnectionMgr.
|
StopAndReconnectTunnelConn(ReconnectParam & reconnParam)
|
void
Arrêtez la connexion au tunnel de service et réessayez de vous reconnecter.
|
TryConnectingNow(void)
|
Essayez d'établir une connexion au service.
|
Fonctions statiques publiques |
|
---|---|
DefaultReconnectPolicyCallback(void *const appstate, ReconnectParam & reconnectParam, uint32_t & delayMsec)
|
void
Implémentation par défaut de la règle pour la récupération lors de la prochaine connexion au service.
|
HandleServiceConnectionClosed(WeaveConnection *con, WEAVE_ERROR conErr)
|
void
Gestionnaire invoqué lorsque la connexion TCP du service est fermée.
|
HandleServiceConnectionComplete(WeaveConnection *con, WEAVE_ERROR conErr)
|
void
Gestionnaire invoqué lorsque la connexion TCP du service est terminée.
|
RecvdFromService(WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *message)
|
void
Gestionnaire pour recevoir les paquets IPv6 acheminés par tunnel à partir de la connexion TCP du service et les transférer vers l'interface Tunnel EndPoint après avoir désencapsulé le paquet IPv6 brut depuis l'en-tête du tunnel.
|
ServiceMgrStatusHandler(void *appState, WEAVE_ERROR err, StatusReport *report)
|
void
Gestionnaire invoqué si le gestionnaire de services n'a pas réussi à établir la connexion TCP au service.
|
Types publics
ConnectPolicyCallback
void(* ConnectPolicyCallback)(void *const appState, ReconnectParam &reconnectParam, uint32_t &delayMsec)
Rappel permettant de récupérer l'intervalle de temps d'attente avant que le prochain tunnel se reconnecte.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
TunnelConnNotifyReasons
TunnelConnNotifyReasons
Propriétés | |
---|---|
kStatus_TunBackupConnError
|
Utilisé pour indiquer qu'une tentative de connexion au tunnel de secours a échoué ou qu'une connexion existante a été abandonnée ou fermée localement par un pair. |
kStatus_TunBackupLiveness
|
Permet d'indiquer des informations sur la vérification d'activité du tunnel du tunnel Weave secondaire. |
kStatus_TunBackupOnlyDown
|
Indique que le tunnel de secours est indisponible. |
kStatus_TunBackupReconnectRcvd
|
Utilisé pour indiquer que le service a demandé une reconnexion pour le tunnel Weave de secours. |
kStatus_TunBackupUp
|
Indique que le tunnel Weave de secours est opérationnel. |
kStatus_TunDown
|
Utilisé pour indiquer que le tunnel Weave est tombé en panne. |
kStatus_TunFailoverToBackup
|
Indique que le tunnel principal est indisponible et que le basculement vers le tunnel de secours a eu lieu. |
kStatus_TunPrimaryAndBackupUp
|
Indique que le tunnel principal et le tunnel tissé de secours sont opérationnels. |
kStatus_TunPrimaryConnError
|
Utilisé pour indiquer qu'une tentative de connexion au tunnel principal a échoué ou qu'une tentative existante a été abandonnée ou fermée localement par le pair. |
kStatus_TunPrimaryLiveness
|
Indique des informations concernant la vérification d'activité du tunnel sur le tunnel Weave principal. |
kStatus_TunPrimaryReconnectRcvd
|
Indique que le service a demandé une reconnexion pour le tunnel Weave principal. |
kStatus_TunPrimaryUp
|
Indique que le tunnel Weave principal est opérationnel. |
TunnelConnNotifyReasons
enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelConnectionMgr::TunnelConnNotifyReasons TunnelConnNotifyReasons
TunnelConnectionState
TunnelConnectionState
Propriétés | |
---|---|
kState_Connecting
|
Indique que la connexion au tunnel Weave a été initiée. |
kState_ConnectionEstablished
|
Permet d'indiquer que la connexion au tunnel Weave est établie et que les informations sur le routage sont échangées. |
kState_NotConnected
|
Utilisé pour indiquer que le tunnel Weave n'est pas connecté. |
kState_ReconnectRecvd
|
Utilisé pour indiquer que le service souhaite que la passerelle frontière se reconnecte après une recherche de répertoire. |
kState_TunnelClosing
|
Utilisé pour indiquer que le tunnel Weave se ferme et que la connexion est interrompue. |
kState_TunnelOpen
|
Utilisé pour indiquer que le tunnel Weave est ouvert et prêt pour le transit du trafic de données. |
TunnelConnectionState
enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelConnectionMgr::TunnelConnectionState TunnelConnectionState
Attributs publics
mServiceConnDelayPolicyCallback
ConnectPolicyCallback mServiceConnDelayPolicyCallback
Fonctions publiques
Init
WEAVE_ERROR Init( WeaveTunnelAgent *tunAgent, TunnelType tunType, SrcInterfaceType srcIntfType, const char *connIntfName )
Initialisez WeaveTunnelConnectionMgr.
ServiceTunnelClose
void ServiceTunnelClose( WEAVE_ERROR err )
Fermez le tunnel de service.
Détails | |||
---|---|---|---|
Paramètres |
|
SetInterfaceName
void SetInterfaceName( const char *intfName )
Définissez InterfaceName pour la connexion au tunnel.
Détails | |||
---|---|---|---|
Paramètres |
|
SetInterfaceType
void SetInterfaceType( const SrcInterfaceType srcIntfType )
Définissez SrcInterfaceType pour la connexion de tunnel.
Détails | |||
---|---|---|---|
Paramètres |
|
StopAndReconnectTunnelConn
void StopAndReconnectTunnelConn( ReconnectParam & reconnParam )
Arrêtez la connexion au tunnel de service et réessayez de vous reconnecter.
Détails | |||
---|---|---|---|
Paramètres |
|
TryConnectingNow
WEAVE_ERROR TryConnectingNow( void )
Essayez d'établir une connexion au service.
Essayez d'établir une connexion au service à l'aide de ServiceManager ou directement.
WeaveTunnelConnectionMgr
WeaveTunnelConnectionMgr( void )
Fonctions statiques publiques
DefaultReconnectPolicyCallback
void DefaultReconnectPolicyCallback( void *const appstate, ReconnectParam & reconnectParam, uint32_t & delayMsec )
Implémentation par défaut de la règle pour la récupération lors de la prochaine connexion au service.
Cette règle sélectionne un créneau horaire aléatoire (avec une résolution en millisecondes) sur une fenêtre croissante, en suivant une séquence de fibonacci jusqu'à WEAVE_CONFIG_ testsING_RECONNECT_MAX_FIBONACCI_INDEX.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
HandleServiceConnectionClosed
void HandleServiceConnectionClosed( WeaveConnection *con, WEAVE_ERROR conErr )
Gestionnaire invoqué lorsque la connexion TCP du service est fermée.
L'appareil tente de rétablir la connexion au service si mServiceConKeepAlive est défini sur "true".
L'appareil tente ensuite de rétablir la connexion au service.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
HandleServiceConnectionComplete
void HandleServiceConnectionComplete( WeaveConnection *con, WEAVE_ERROR conErr )
Gestionnaire invoqué lorsque la connexion TCP du service est terminée.
L'appareil envoie des commandes de contrôle de tunnel au service à partir de cette fonction.
L'appareil envoie des commandes de contrôle de tunnel au service à partir de cette fonction.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
RecvdFromService
void RecvdFromService( WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *message )
Gestionnaire pour recevoir les paquets IPv6 acheminés par tunnel à partir de la connexion TCP du service et les transférer vers l'interface Tunnel EndPoint après avoir désencapsulé le paquet IPv6 brut depuis l'en-tête du tunnel.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
ServiceMgrStatusHandler
void ServiceMgrStatusHandler( void *appState, WEAVE_ERROR err, StatusReport *report )
Gestionnaire invoqué si le gestionnaire de services n'a pas réussi à établir la connexion TCP au service.