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

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

Cette classe encapsule tous les états de connexion au 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 par 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 visant à récupérer l'intervalle de temps d'attente avant la reconnexion du tunnel suivant.
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
}
énum
TunnelConnNotifyReasons typedef
TunnelConnectionState{
  kState_NotConnected = 0,
  kState_Connecting = 1,
  kState_ConnectionEstablished = 2,
  kState_TunnelOpen = 3,
  kState_TunnelClosing = 4,
  kState_ReconnectRecvd = 5
}
énum
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 de tunnel.
SetInterfaceType(const SrcInterfaceType srcIntfType)
void
Définissez SrcInterfaceType pour la connexion par tunnel.
Shutdown(void)
void
StopAndReconnectTunnelConn(ReconnectParam & reconnParam)
void
Arrêtez la connexion au tunnel de service, puis 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 de la règle par défaut pour récupérer la prochaine fois que vous vous connecterez au service.
HandleServiceConnectionClosed(WeaveConnection *con, WEAVE_ERROR conErr)
void
Gestionnaire appelé lorsque la connexion TCP du service est fermée.
HandleServiceConnectionComplete(WeaveConnection *con, WEAVE_ERROR conErr)
void
Gestionnaire appelé 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 depuis la connexion TCP du service et les transférer à l'interface du point de terminaison du tunnel après avoir décapsulé le paquet IPv6 brut à partir de l'en-tête du tunnel.
ServiceMgrStatusHandler(void *appState, WEAVE_ERROR err, StatusReport *report)
void
Gestionnaire appelé si Service Manager 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 visant à récupérer l'intervalle de temps d'attente avant la reconnexion du tunnel suivant.

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

Indique qu'une tentative de connexion au tunnel de secours a échoué ou qu'une tentative existante a été annulée ou fermée localement par un pair.

kStatus_TunBackupLiveness

Permet d'indiquer des informations sur la vérification de l'activité du tunnel dans le tunnel Backup Weave.

kStatus_TunBackupOnlyDown

Permet d'indiquer que le tunnel de secours est indisponible.

kStatus_TunBackupReconnectRcvd

Utilisé pour indiquer que le service a demandé une reconnexion pour le tunnel Weave de sauvegarde.

kStatus_TunBackupUp

Utilisé pour indiquer que le tunnel Back Weave est opérationnel.

kStatus_TunDown

Indique que le tunnel Weave est tombé en panne.

kStatus_TunFailoverToBackup

Utilisé pour indiquer que le tunnel principal est hors service et que le basculement vers le tunnel de secours a eu lieu.

kStatus_TunPrimaryAndBackupUp

Utilisé pour indiquer que le tunnel principal et le tunnel Weave de secours sont opérationnels.

kStatus_TunPrimaryConnError

Indique qu'une tentative de connexion au tunnel principal a échoué ou qu'une tentative existante a été annulée ou fermée localement par un pair.

kStatus_TunPrimaryLiveness

Permet d'indiquer des informations concernant la vérification de l'activité du tunnel dans le tunnel Weave principal.

kStatus_TunPrimaryReconnectRcvd

Utilisé pour indiquer que le service a demandé une reconnexion pour le tunnel Weave principal.

kStatus_TunPrimaryUp

Utilisé pour indiquer 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

Indique que la connexion au tunnel Weave est établie et que les informations sur le trajet sont échangées.

kState_NotConnected

Permet d'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 dans le répertoire.

kState_TunnelClosing

Utilisé pour indiquer que le tunnel Weave se ferme et que la connexion est en cours de suppression.

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 transmise par l'appelant.

SetInterfaceName

void SetInterfaceName(
  const char *intfName
)

Définissez InterfaceName pour la connexion de 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 par 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, puis réessayez de vous reconnecter.

Détails
Paramètres
[in] err
Une erreur WEAVE_ERROR 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 de la règle par défaut pour récupérer la prochaine fois que vous vous connecterez au service.

Cette règle sélectionne un intervalle de temps aléatoire (avec une résolution de l'ordre de la milliseconde) sur une fenêtre croissante, suivant une séquence de fibonacci jusqu'à WEAVE_CONFIG_TUNNELING_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 appelé lorsque la connexion TCP du service est fermée.

L'appareil tente de rétablir la connexion au service si la valeur de mServiceConKeepAlive est "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 appelé lorsque la connexion TCP du service est terminée.

L'appareil lance alors des commandes de contrôle de tunnel vers le service à partir de cette fonction.

L'appareil lance alors des commandes de contrôle de tunnel vers le 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 depuis la connexion TCP du service et les transférer à l'interface du point de terminaison du tunnel après avoir décapsulé le paquet IPv6 brut à partir de l'en-tête du tunnel.

Détails
Paramètres
[in] con
Pointeur vers l'objet WeaveConnection.
[in] msgInfo
Pointeur vers l'objet WeaveMessageInfo.
[in] message
Pointeur vers l'objet PacketBuffer contenant le paquet IPv6 acheminé par tunnel.

ServiceMgrStatusHandler

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

Gestionnaire appelé si Service Manager n'a pas réussi à établir la connexion TCP au service.