nl::Weave::Profiles::WeaveTunnel::WeaveTunnelAgent

Résumé

Constructeurs et destructeurs

WeaveTunnelAgent(void)

Types publics

AgentState{
  kState_NotInitialized = 0,
  kState_Initialized_NoTunnel = 1,
  kState_PrimaryTunModeEstablished = 2,
  kState_BkupOnlyTunModeEstablished = 3,
  kState_PrimaryAndBkupTunModeEstablished = 4
}
énum
États de l'agent de tunnel en lien avec sa ou ses connexions au service.
AgentState typedef
États de l'agent de tunnel en lien avec sa ou ses connexions au service.
OnServiceTunnelReconnectNotifyFunct)(TunnelType tunType, const char *reconnectHost, const uint16_t reconnectPort, void *appCtxt) typedef
void(*
Pointeur de fonction vers le gestionnaire défini par une couche supérieure lorsqu'une reconnexion de tunnel est reçue du service.
OnServiceTunnelStatusNotifyFunct)(WeaveTunnelConnectionMgr::TunnelConnNotifyReasons reason, WEAVE_ERROR err, void *appCtxt) typedef
void(*
Pointeur de fonction vers un gestionnaire défini par une couche supérieure pour agir en fonction de différentes notifications liées au tunnel vers le service.
PlatformNetworkOnlineCheck)(TunnelType tunType, void *appCtxt) typedef
void(*
Pointeur de fonction vers un gestionnaire fourni par l'application pour effectuer une vérification en ligne au niveau du réseau.
WeaveTunnelFlags{
  kTunnelFlag_PrimaryEnabled = 0x01,
  kTunnelFlag_BackupEnabled = 0x02,
  kTunnelFlag_PrimaryRestricted = 0x04,
  kTunnelFlag_BackupRestricted = 0x08
}
énum
Bits indicateurs Weave Tunnel.
WeaveTunnelFlags typedef
Bits indicateurs Weave Tunnel.

Attributs publics

NetworkOnlineCheck
OnServiceTunReconnectNotify
OnServiceTunStatusNotify
Pointeur de fonction vers un gestionnaire défini par une couche supérieure pour agir en fonction de différentes notifications liées au tunnel vers le service.
mServiceMgr
WeaveServiceManager *
Pointeur du gestionnaire de services à utiliser pour rechercher un service et s'y connecter.

Fonctions publiques

DisablePrimaryTunnel(void)
void
Désactivez le tunnel principal.
EnablePrimaryTunnel(void)
void
Activez le tunnel principal.
GetAgentStateName(const AgentState state)
const char *
Obtenez le nom WeaveTunnelAgentState.
GetTimeMsec(void)
uint64_t
Obtenez l'heure du système en millisecondes.
GetWeaveTunnelAgentState(void)
Obtenez l'état de TunnelAgent.
Init(InetLayer *inet, WeaveExchangeManager *exchMgr, uint64_t dstNodeId, WeaveAuthMode authMode, WeaveServiceManager *svcMgr, const char *intfName, uint8_t role, void *appContext)
Initialisez l'agent Tunnel.
Init(InetLayer *inet, WeaveExchangeManager *exchMgr, uint64_t dstNodeId, IPAddress dstIPAddr, WeaveAuthMode authMode, const char *intfName, uint8_t role, void *appContext)
Initialisez l'agent Tunnel.
IsPrimaryTunnelEnabled(void) const
bool
Vérifiez si le tunnel principal est activé.
IsPrimaryTunnelRoutingRestricted(void)
bool
Vérifiez si le tunnel principal est soumis à des restrictions de routage du service.
IsTunnelRoutingRestricted(void)
bool
Vérifiez si le tunnel est soumis à des restrictions de routage du service.
NetworkOnlineCheckResult(TunnelType tunType, bool isOnline)
void
Rappel invoqué par la plate-forme lorsque le résultat du vérificateur en ligne du réseau est disponible.
ResetPrimaryReconnectBackoff(bool reconnectImmediately)
Réinitialisez le délai de reconnexion pour le tunnel principal.
SetAuthMode(const WeaveAuthMode authMode)
void
Définissez le WeaveAuthMode pour le tunnel.
SetDestination(const uint64_t nodeId, const IPAddress ipAddr, const uint16_t servicePort)
void
Définissez l'ID du nœud, l'adresse IP et le port de destination pour le tunnel.
SetTunnelingDeviceRole(const Role role)
void
Définissez le rôle de l'appareil de tunnelisation(BorderGateway, StandaloneDevice, MobileDevice) pour le tunnel.
Shutdown(void)
Arrêtez l'agent de tunnel.
StartServiceTunnel(void)
Démarrez le tunnel de service.
StartServiceTunnel(uint64_t dstNodeId, IPAddress dstIPAddr, WeaveAuthMode authMode)
Démarrez le tunnel de service.
StopServiceTunnel(void)
void
Fermez la connexion tunnel au service.
StopServiceTunnel(WEAVE_ERROR err)
void
Fermez la connexion tunnel au service.

Fonctions statiques publiques

RecvdFromShortcutUDPTunnel(WeaveMessageLayer *msgLayer, PacketBuffer *message)
void
Gestionnaire pour recevoir les paquets IPv6 acheminés par tunnel via le tunnel UDP de raccourci entre la passerelle frontière et l'appareil mobile, puis 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.
RecvdFromTunnelEndPoint(TunEndPoint *tunEP, PacketBuffer *message)
void
Gestionnaire pour recevoir les paquets IPv6 de l'interface du point de terminaison du tunnel et les transférer, soit au service via la connexion TCP du service après encapsuler le paquet IPv6 dans l'en-tête du tunnel, soit au client mobile via un tunnel de raccourci.

Types publics

AgentState

 AgentState

États de l'agent de tunnel en lien avec sa ou ses connexions au service.

Propriétés
kState_BkupOnlyTunModeEstablished

Utilisé pour indiquer que le tunnel de sauvegarde vers le service a été établi.

kState_Initialized_NoTunnel

Utilisé pour indiquer que l'agent de tunnel est initialisé, mais qu'aucun tunnel n'a été établi.

kState_NotInitialized

Utilisé pour indiquer que l'agent de tunnel n'est pas initialisé.

kState_PrimaryAndBkupTunModeEstablished

Utilisé pour indiquer que les tunnels principal et de secours ont été établis.

kState_PrimaryTunModeEstablished

Utilisé pour indiquer que le tunnel principal vers le service a été établi.

AgentState

enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelAgent::AgentState AgentState

États de l'agent de tunnel en lien avec sa ou ses connexions au service.

OnServiceTunnelReconnectNotifyFunct

void(* OnServiceTunnelReconnectNotifyFunct)(TunnelType tunType, const char *reconnectHost, const uint16_t reconnectPort, void *appCtxt)

Pointeur de fonction vers le gestionnaire défini par une couche supérieure lorsqu'une reconnexion de tunnel est reçue du service.

Détails
Paramètres
[in] tunType
Type de tunnel : principal ou de secours.
[in] reconnectHost
Nom d'hôte fourni par le service pour se reconnecter.
[in] reconnectPort
Port de destination fourni par le service pour la reconnexion.
[in] appCtxt
Pointeur vers un objet de contexte d'application

OnServiceTunnelStatusNotifyFunct

void(* OnServiceTunnelStatusNotifyFunct)(WeaveTunnelConnectionMgr::TunnelConnNotifyReasons reason, WEAVE_ERROR err, void *appCtxt)

Pointeur de fonction vers un gestionnaire défini par une couche supérieure pour agir en fonction de différentes notifications liées au tunnel vers le service.

Détails
Paramètres
[in] reason
Motif de la notification d'état envoyée à l'application.
[in] err
Erreur Weave rencontrée, le cas échéant
[in] appCtxt
Pointeur vers un objet de contexte d'application

PlatformNetworkOnlineCheck

void(* PlatformNetworkOnlineCheck)(TunnelType tunType, void *appCtxt)

Pointeur de fonction vers un gestionnaire fourni par l'application pour effectuer une vérification en ligne au niveau du réseau.

Détails
Paramètres
[in] tunType
Type de tunnel : principal ou de secours.
[in] appCtxt
Pointeur vers un objet de contexte d'application

WeaveTunnelFlags

 WeaveTunnelFlags

Bits indicateurs Weave Tunnel.

Propriétés
kTunnelFlag_BackupEnabled

Défini lorsque le tunnel de secours est activé.

kTunnelFlag_BackupRestricted

Définissez les cas où le routage du tunnel de secours est restreint.

kTunnelFlag_PrimaryEnabled

Défini lorsque le tunnel principal est activé.

kTunnelFlag_PrimaryRestricted

Définissez les cas où le routage du tunnel principal est restreint.

WeaveTunnelFlags

enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelAgent::WeaveTunnelFlags WeaveTunnelFlags

Bits indicateurs Weave Tunnel.

Attributs publics

NetworkOnlineCheck

PlatformNetworkOnlineCheck NetworkOnlineCheck

OnServiceTunReconnectNotify

OnServiceTunnelReconnectNotifyFunct OnServiceTunReconnectNotify

OnServiceTunStatusNotify

OnServiceTunnelStatusNotifyFunct OnServiceTunStatusNotify

Pointeur de fonction vers un gestionnaire défini par une couche supérieure pour agir en fonction de différentes notifications liées au tunnel vers le service.

mServiceMgr

WeaveServiceManager * mServiceMgr

Pointeur du gestionnaire de service à utiliser pour rechercher le service et s'y connecter.

Fonctions publiques

DisablePrimaryTunnel

void DisablePrimaryTunnel(
  void
)

Désactivez le tunnel principal.

Désactivez le tunnel principal.

EnablePrimaryTunnel

void EnablePrimaryTunnel(
  void
)

Activez le tunnel principal.

Activez le tunnel principal.

GetAgentStateName

const char * GetAgentStateName(
  const AgentState state
)

Obtenez le nom WeaveTunnelAgentState.

GetTimeMsec

uint64_t GetTimeMsec(
  void
)

Obtenez l'heure du système en millisecondes.

Obtenez l'heure système ou l'heure monotone en millisecondes si l'heure système n'est pas disponible.

GetWeaveTunnelAgentState

AgentState GetWeaveTunnelAgentState(
  void
)

Obtenez l'état de TunnelAgent.

Détails
Renvoie
AgentIndiquez l'état actuel de WeaveTunnelAgent.

Init

WEAVE_ERROR Init(
  InetLayer *inet,
  WeaveExchangeManager *exchMgr,
  uint64_t dstNodeId,
  WeaveAuthMode authMode,
  WeaveServiceManager *svcMgr,
  const char *intfName,
  uint8_t role,
  void *appContext
)

Initialisez l'agent Tunnel.

Cette commande crée l'objet du point de terminaison du tunnel, configure l'interface du tunnel, initialise les variables de membre, les rappels et WeaveTunnelControl.

Init

WEAVE_ERROR Init(
  InetLayer *inet,
  WeaveExchangeManager *exchMgr,
  uint64_t dstNodeId,
  IPAddress dstIPAddr,
  WeaveAuthMode authMode,
  const char *intfName,
  uint8_t role,
  void *appContext
)

Initialisez l'agent Tunnel.

Cette commande crée l'objet du point de terminaison du tunnel, configure l'interface du tunnel, initialise les variables de membre, les rappels et WeaveTunnelControl.

IsPrimaryTunnelEnabled

bool IsPrimaryTunnelEnabled(
  void
) const 

Vérifiez si le tunnel principal est activé.

Détails
Renvoie
"true" si elle est activée, sinon "false".

IsPrimaryTunnelRoutingRestricted

bool IsPrimaryTunnelRoutingRestricted(
  void
)

Vérifiez si le tunnel principal est soumis à des restrictions de routage du service.

Vérifiez si le tunnel principal est soumis à des restrictions de routage.

Détails
Renvoie
Valeur true si le tunnel principal est établi, mais soumis aux restrictions de routage du service.

IsTunnelRoutingRestricted

bool IsTunnelRoutingRestricted(
  void
)

Vérifiez si le tunnel est soumis à des restrictions de routage du service.

Vérifiez si le tunnel est soumis à des restrictions de routage.

Détails
Renvoie
est défini sur "true" si le tunnel principal ou de secours est établi, et qu'ils sont soumis à des restrictions de routage de la part du service.

NetworkOnlineCheckResult

void NetworkOnlineCheckResult(
  TunnelType tunType,
  bool isOnline
)

Rappel invoqué par la plate-forme lorsque le résultat du vérificateur en ligne du réseau est disponible.

Détails
Paramètres
[in] tunType
Type de tunnel correspondant à l'interface sur laquelle le contrôle de connectivité réseau est effectué.
[in] isOnline
"True" si le réseau est en ligne, "false" dans le cas contraire.

ResetPrimaryReconnectBackoff

WEAVE_ERROR ResetPrimaryReconnectBackoff(
  bool reconnectImmediately
)

Réinitialisez le délai de reconnexion pour le tunnel principal.

Détails
Paramètres
[in] reconnectImmediately
"True" si nécessaire pour se reconnecter immédiatement, sinon en utilisant le délai avant expiration de la reconnaissance configuré.

SetAuthMode

void SetAuthMode(
  const WeaveAuthMode authMode
)

Définissez le WeaveAuthMode pour le tunnel.

Détails
Paramètres
[in] authMode
Mode d'authentification Weave utilisé avec le pair.

SetDestination

void SetDestination(
  const uint64_t nodeId,
  const IPAddress ipAddr,
  const uint16_t servicePort
)

Définissez l'ID du nœud, l'adresse IP et le port de destination pour le tunnel.

Définissez l'ID du nœud et l'adresse IP de destination pour le tunnel.

Détails
Paramètres
[in] nodeId
ID du nœud de destination.
[in] ipAddr
Adresse IP du nœud de destination.
[in] servicePort
Port du nœud de destination.

SetTunnelingDeviceRole

void SetTunnelingDeviceRole(
  const Role role
)

Définissez le rôle de l'appareil de tunnelisation(BorderGateway, StandaloneDevice, MobileDevice) pour le tunnel.

Définissez le rôle de l'appareil de tunnelisation(BorderGateway ou Autonome) pour le tunnel.

Détails
Paramètres
[in] role
Rôle pris par l'agent de tunnel. Passerelle frontalière, autonome ou mobile.

Arrêt

WEAVE_ERROR Shutdown(
  void
)

Arrêtez l'agent de tunnel.

Cette opération supprime la connexion au service et ferme l'interface TunEndPoint après avoir supprimé les adresses et les routes associées à l'interface du tunnel.

Cette opération supprime la connexion au service et ferme l'interface TunEndPoint après avoir supprimé les adresses et les routes associées à l'interface du tunnel.

Détails
Renvoie
WEAVE_NO_ERROR en cas de réussite, sinon un type WEAVE_ERROR correspondant.

StartServiceTunnel

WEAVE_ERROR StartServiceTunnel(
  void
)

Démarrez le tunnel de service.

Cette opération active le tunnel et tente d'établir une connexion au service.

Cette commande tente d'établir une connexion au service et définit également l'itinéraire de la structure vers l'interface du tunnel.

Détails
Renvoie
WEAVE_NO_ERROR en cas de réussite, sinon un type WEAVE_ERROR correspondant.

StartServiceTunnel

WEAVE_ERROR StartServiceTunnel(
  uint64_t dstNodeId,
  IPAddress dstIPAddr,
  WeaveAuthMode authMode
)

Démarrez le tunnel de service.

Cette opération active le tunnel et tente d'établir une connexion au service.

StopServiceTunnel

void StopServiceTunnel(
  void
)

Fermez la connexion tunnel au service.

StopServiceTunnel

void StopServiceTunnel(
  WEAVE_ERROR err
)

Fermez la connexion de tunnel au service.

Détails
Paramètres
[in] err
WEAVE_NO_ERROR s'il n'existe aucune raison spécifique pour cette requête StopServiceTunnel, sinon la cause de l'erreur sera ignorée.

WeaveTunnelAgent

 WeaveTunnelAgent(
  void
)

Fonctions statiques publiques

RecvdFromShortcutUDPTunnel

void RecvdFromShortcutUDPTunnel(
  WeaveMessageLayer *msgLayer,
  PacketBuffer *message
)

Gestionnaire pour recevoir les paquets IPv6 acheminés par tunnel via le tunnel UDP de raccourci entre la passerelle frontière et l'appareil mobile, puis 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.

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.

RecvdFromTunnelEndPoint

void RecvdFromTunnelEndPoint(
  TunEndPoint *tunEP,
  PacketBuffer *message
)

Gestionnaire pour recevoir les paquets IPv6 de l'interface du point de terminaison du tunnel et les transférer, soit au service via la connexion TCP du service après encapsuler le paquet IPv6 dans l'en-tête du tunnel, soit au client mobile via un tunnel de raccourci.

Gestionnaire pour recevoir les paquets IPv6 de l'interface du point de terminaison du tunnel et les transférer, soit au service via la connexion TCP du service après encapsuler le paquet IPv6 dans l'en-tête du tunnel, soit au client mobile via un tunnel local.

Si la connexion au service n'est pas encore établie, le message est mis en file d'attente jusqu'à ce que la connexion soit configurée. Pour la tunnelisation vers l'appareil client mobile, la table voisine du prochain saut est référencée.

Si la connexion au service n'est pas encore établie, le message est mis en file d'attente jusqu'à ce que la connexion soit configurée. Pour la tunnelisation vers l'appareil client mobile, la table voisine du prochain saut est référencée.

Détails
Paramètres
[in] tunEP
Pointeur vers l'objet TunEndPoint.
[in] message
Pointeur vers l'objet PacketBuffer contenant le paquet IPv6 brut.