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) typedef
void(*
Rappel permettant de récupérer l'intervalle de temps d'attente avant que le prochain tunnel se reconnecte.
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

Attributs publics

mServiceConnDelayPolicyCallback

Fonctions publiques

Init(WeaveTunnelAgent *tunAgent, TunnelType tunType, SrcInterfaceType srcIntfType, const char *connIntfName)
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
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
[in] appState
Pointeur d'état de l'application défini lors de l'initialisation de SubscriptionClient.
[in] reconnectParam
Structure avec des paramètres qui influencent le calcul du délai de reconnexion.
[out] delayMsec
Délai d'attente en millisecondes avant la prochaine tentative de reconnexion.

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
)

ServiceTunnelClose

void ServiceTunnelClose(
  WEAVE_ERROR err
)

Fermez le tunnel de service.

Détails
Paramètres
[in] err
Une erreur WEAVE_ERROR a été transmise par l'appelant.

SetInterfaceName

void SetInterfaceName(
  const char *intfName
)

Définissez InterfaceName pour la connexion au tunnel.

Détails
Paramètres
[in] tunIntf
InterfaceName pour la définition de la connexion au tunnel de service.

SetInterfaceType

void SetInterfaceType(
  const SrcInterfaceType srcIntfType
)

Définissez SrcInterfaceType pour la connexion de tunnel.

Détails
Paramètres
[in] srcIntfType
Type de technologie réseau de l'interface pour la connexion au tunnel de service.

Arrêt

void Shutdown(
  void
)

StopAndReconnectTunnelConn

void StopAndReconnectTunnelConn(
  ReconnectParam & reconnParam
)

Arrêtez la connexion au tunnel de service et réessayez de vous reconnecter.

Détails
Paramètres
[in] err
Une erreur WEAVE_ERROR a été transmise par l'appelant.

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
[in] appState
Pointeur d'état de l'application défini lors de l'initialisation de SubscriptionClient.
[in] reconnectParam
Structure avec des paramètres qui influencent le calcul du délai de reconnexion.
[out] delayMsec
Délai d'attente en millisecondes avant la prochaine tentative de reconnexion.

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
[in] con
Pointeur vers l'objet WeaveConnection.
[in] conErr
Toute erreur dans WeaveConnection ou WEAVE_NO_ERROR.

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
[in] con
Pointeur vers l'objet WeaveConnection.
[in] conErr
Toute erreur dans WeaveConnection ou WEAVE_NO_ERROR.

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
[in] con
Pointeur vers l'objet WeaveConnection.
[in] msgInfo
Un pointeur vers l'objet WeaveMessageInfo.
[in] message
Pointeur vers l'objet PacketBuffer contenant le paquet IPv6 tunnelisé.

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.