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
}
enum
États de l'Agent de tunnel par rapport à sa ou ses connexions au Service.
AgentState typedef
États de l'Agent de tunnel par rapport à sa ou ses connexions au Service.
OnServiceTunnelReconnectNotifyFunct)(TunnelType tunType, const char *reconnectHost, const uint16_t reconnectPort, void *appCtxt) typedef
void(*
Pointeur de fonction vers un 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 traiter diverses 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
}
enum
Bits d'indicateur de tunnel Weave.
WeaveTunnelFlags typedef
Bits d'indicateur de tunnel Weave.

Attributs publics

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

Fonctions publiques

DisablePrimaryTunnel(void)
void
Désactivez le tunnel principal.
EnablePrimaryTunnel(void)
void
Activer le tunnel principal.
GetAgentStateName(const AgentState state)
const char *
Permet d'obtenir le nom WeaveTunnelAgentState.
GetTimeMsec(void)
uint64_t
Obtenez l'heure système en millisecondes.
GetWeaveTunnelAgentState(void)
Obtenez l'état de l'agent TunnelAgent.
Init(InetLayer *inet, WeaveExchangeManager *exchMgr, uint64_t dstNodeId, WeaveAuthMode authMode, WeaveServiceManager *svcMgr, const char *intfName, uint8_t role, void *appContext)
Initialisez l'agent de tunnel.
Init(InetLayer *inet, WeaveExchangeManager *exchMgr, uint64_t dstNodeId, IPAddress dstIPAddr, WeaveAuthMode authMode, const char *intfName, uint8_t role, void *appContext)
Initialisez l'agent de 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 l'heure de reconnexion du tunnel principal.
SetAuthMode(const WeaveAuthMode authMode)
void
Définissez le mode WeaveAuthMode du tunnel.
SetDestination(const uint64_t nodeId, const IPAddress ipAddr, const uint16_t servicePort)
void
Définissez l'ID du nœud de destination, l'adresse IP et le port du tunnel.
SetTunnelingDeviceRole(const Role role)
void
Définissez le rôle "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 du tunnel au service.
StopServiceTunnel(WEAVE_ERROR err)
void
Fermez la connexion du 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 de bordure et l'appareil mobile, puis les transférer vers l'interface Tunnel EndPoint après avoir décapsulé le paquet IPv6 brut depuis l'en-tête du tunnel.
RecvdFromTunnelEndPoint(TunEndPoint *tunEP, PacketBuffer *message)
void
Gestionnaire pour recevoir les paquets IPv6 de l'interface Tunnel EndPoint 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 par rapport à 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 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

Permet d'indiquer que le tunnel principal et le tunnel 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 par rapport à sa ou ses connexions au Service.

OnServiceTunnelReconnectNotifyFunct

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

Pointeur de fonction vers un 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 secondaire.
[in] reconnectHost
Nom d'hôte fourni par le service auquel se reconnecter.
[in] reconnectPort
Port de destination fourni par le service auquel se reconnecter.
[in] appCtxt
Un 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 traiter diverses notifications liées au tunnel vers le service.

Détails
Paramètres
[in] reason
Motif de la notification d'état à l'application.
[in] err
Erreur Weave rencontrée, le cas échéant
[in] appCtxt
Un 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 secondaire.
[in] appCtxt
Un pointeur vers un objet de contexte d'application

WeaveTunnelFlags

 WeaveTunnelFlags

Bits d'indicateur de tunnel Weave.

Propriétés
kTunnelFlag_BackupEnabled

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

kTunnelFlag_BackupRestricted

Définissez ce paramètre lorsque le routage du tunnel de secours est limité.

kTunnelFlag_PrimaryEnabled

Défini lorsque le tunnel principal est activé.

kTunnelFlag_PrimaryRestricted

Défini lorsque le tunnel principal présente une restriction de routage.

WeaveTunnelFlags

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

Bits d'indicateur de tunnel Weave.

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 traiter diverses 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
)

Activer le tunnel principal.

Activez le tunnel principal.

GetAgentStateName

const char * GetAgentStateName(
  const AgentState state
)

Permet d'obtenir le nom WeaveTunnelAgentState.

GetTimeMsec

uint64_t GetTimeMsec(
  void
)

Obtenez l'heure 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 l'agent TunnelAgent.

Détails
Renvoie
AgentState est 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 de tunnel.

Cette opération crée l'objet "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 de tunnel.

Cette opération crée l'objet "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
"true" si le tunnel principal est établi, mais qu'il est 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
"true" si le tunnel principal ou de secours est établi, et que l'un ou l'autre sont soumis à des restrictions de routage 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 la vérification de la connectivité réseau est effectuée.
[in] isOnline
"True" si le réseau est en ligne, "false" dans le cas contraire.

ResetPrimaryReconnectBackoff

WEAVE_ERROR ResetPrimaryReconnectBackoff(
  bool reconnectImmediately
)

Réinitialisez l'heure de reconnexion du tunnel principal.

Détails
Paramètres
[in] reconnectImmediately
"True" si une reconnexion immédiate est nécessaire, sinon en utilisant le délai avant expiration de la reconnexion configuré.

SetAuthMode

void SetAuthMode(
  const WeaveAuthMode authMode
)

Définissez le mode WeaveAuthMode du tunnel.

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

SetDestination

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

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

Définissez l'ID de nœud de destination et l'adresse IP du 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 "Appareil de tunnelisation" (BorderGateway, StandaloneDevice, MobileDevice) pour le tunnel.

Définissez le rôle "Appareil de tunnelisation" ("BorderGateway" ou "Autonome") du tunnel.

Détails
Paramètres
[in] role
Rôle assumé par l'agent Tunnel, Border Gateway, autonome ou appareil mobile.

Arrêt

WEAVE_ERROR Shutdown(
  void
)

Arrêtez l'agent de tunnel.

Cette action interrompt la connexion au service et ferme l'interface TunEndPoint après la suppression des adresses et des routes associées à l'interface du tunnel.

Cette action interrompt la connexion au service et ferme l'interface TunEndPoint après la suppression des adresses et des 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.

Cela permet d'activer le tunnel et de tenter d'établir une connexion au service.

Cette opération tente d'établir une connexion au service et définit également la route 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.

Cela permet d'activer le tunnel et de tenter d'établir une connexion au service.

StopServiceTunnel

void StopServiceTunnel(
  void
)

Fermez la connexion du tunnel au service.

StopServiceTunnel

void StopServiceTunnel(
  WEAVE_ERROR err
)

Fermez la connexion du 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 serait transmise.

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 de bordure et l'appareil mobile, puis les transférer vers l'interface Tunnel EndPoint après avoir décapsulé le paquet IPv6 brut depuis l'en-tête du tunnel.

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é.

RecvdFromTunnelEndPoint

void RecvdFromTunnelEndPoint(
  TunEndPoint *tunEP,
  PacketBuffer *message
)

Gestionnaire pour recevoir les paquets IPv6 de l'interface Tunnel EndPoint 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 Tunnel EndPoint 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 saut suivant 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 saut suivant 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.