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

Resumen

Constructores y destructores

WeaveTunnelAgent(void)

Tipos públicos

AgentState{
  kState_NotInitialized = 0,
  kState_Initialized_NoTunnel = 1,
  kState_PrimaryTunModeEstablished = 2,
  kState_BkupOnlyTunModeEstablished = 3,
  kState_PrimaryAndBkupTunModeEstablished = 4
}
enum
Estados del agente de túnel en relación con sus conexiones con el Servicio.
AgentState typedef
Estados del agente de túnel en relación con sus conexiones con el Servicio.
OnServiceTunnelReconnectNotifyFunct)(TunnelType tunType, const char *reconnectHost, const uint16_t reconnectPort, void *appCtxt) typedef
void(*
Puntero de función al controlador establecido por una capa superior cuando se recibe una reconexión de túnel del servicio.
OnServiceTunnelStatusNotifyFunct)(WeaveTunnelConnectionMgr::TunnelConnNotifyReasons reason, WEAVE_ERROR err, void *appCtxt) typedef
void(*
Puntero de función al controlador establecido por una capa superior para actuar sobre varias notificaciones relacionadas con el túnel hacia el Service.
PlatformNetworkOnlineCheck)(TunnelType tunType, void *appCtxt) typedef
void(*
Puntero de función a un controlador proporcionado por la aplicación para realizar una verificación en línea a nivel de la red.
WeaveTunnelFlags{
  kTunnelFlag_PrimaryEnabled = 0x01,
  kTunnelFlag_BackupEnabled = 0x02,
  kTunnelFlag_PrimaryRestricted = 0x04,
  kTunnelFlag_BackupRestricted = 0x08
}
enum
Bits de bandera del túnel de Weave.
WeaveTunnelFlags typedef
Bits de bandera del túnel de Weave.

Atributos públicos

NetworkOnlineCheck
OnServiceTunReconnectNotify
OnServiceTunStatusNotify
Puntero de función al controlador establecido por una capa superior para actuar sobre varias notificaciones relacionadas con el túnel hacia el Service.
mServiceMgr
WeaveServiceManager *
Puntero de Service Manager que se usa para buscar servicios y conectarse a él.

Funciones públicas

DisablePrimaryTunnel(void)
void
Inhabilitar el túnel principal
EnablePrimaryTunnel(void)
void
Habilitar el túnel principal
GetAgentStateName(const AgentState state)
const char *
Obtén el nombre WeaveTunnelAgentState.
GetTimeMsec(void)
uint64_t
Obtén la hora del sistema en milisegundos.
GetWeaveTunnelAgentState(void)
Obtén el estado de TunnelAgent.
Init(InetLayer *inet, WeaveExchangeManager *exchMgr, uint64_t dstNodeId, WeaveAuthMode authMode, WeaveServiceManager *svcMgr, const char *intfName, uint8_t role, void *appContext)
Inicializa el agente de túnel.
Init(InetLayer *inet, WeaveExchangeManager *exchMgr, uint64_t dstNodeId, IPAddress dstIPAddr, WeaveAuthMode authMode, const char *intfName, uint8_t role, void *appContext)
Inicializa el agente de túnel.
IsPrimaryTunnelEnabled(void) const
bool
Verifica si el túnel principal está habilitado.
IsPrimaryTunnelRoutingRestricted(void)
bool
Comprueba si el túnel principal está sujeto a las restricciones de enrutamiento del servicio.
IsTunnelRoutingRestricted(void)
bool
Comprueba si el túnel está sujeto a restricciones de enrutamiento del servicio.
NetworkOnlineCheckResult(TunnelType tunType, bool isOnline)
void
Es la devolución de llamada que invoca la plataforma cuando el resultado del verificador en línea de la red está disponible.
ResetPrimaryReconnectBackoff(bool reconnectImmediately)
Restablece el tiempo de reconexión del túnel principal.
SetAuthMode(const WeaveAuthMode authMode)
void
Configura WeaveAuthMode para el túnel.
SetDestination(const uint64_t nodeId, const IPAddress ipAddr, const uint16_t servicePort)
void
Establece el nodeId de destino, la dirección IP y el puerto para el túnel.
SetTunnelingDeviceRole(const Role role)
void
Establece el rol del dispositivo de tunelización(BorderGateway, StandaloneDevice, MobileDevice) para el túnel.
Shutdown(void)
Apaga el agente de túnel.
StartServiceTunnel(void)
Inicia el túnel de servicio.
StartServiceTunnel(uint64_t dstNodeId, IPAddress dstIPAddr, WeaveAuthMode authMode)
Inicia el túnel de servicio.
StopServiceTunnel(void)
void
Cierra la conexión de túnel con el servicio.
StopServiceTunnel(WEAVE_ERROR err)
void
Cierra la conexión de túnel con el servicio.

Funciones estáticas públicas

RecvdFromShortcutUDPTunnel(WeaveMessageLayer *msgLayer, PacketBuffer *message)
void
El controlador recibirá paquetes IPv6 en túnel a través del túnel UDP de acceso directo entre la puerta de enlace fronteriza y el dispositivo móvil, y reenviará a la interfaz del extremo del túnel después de desencapsular el paquete IPv6 sin procesar desde el encabezado del túnel.
RecvdFromTunnelEndPoint(TunEndPoint *tunEP, PacketBuffer *message)
void
Controlador para recibir paquetes IPv6 de la interfaz de Tunnel EndPoint y reenviarlos, ya sea al Service a través de la conexión TCP del Service después de encapsular el paquete IPv6 dentro del encabezado del túnel o al cliente móvil a través de un túnel de acceso directo.

Tipos públicos

AgentState

 AgentState

Estados del agente de túnel en relación con sus conexiones con el Servicio.

Propiedades
kState_BkupOnlyTunModeEstablished

Se usa para indicar que se estableció el túnel de respaldo para el Servicio.

kState_Initialized_NoTunnel

Se usa para indicar que se inicializó el agente de túnel, pero no se estableció ningún túnel.

kState_NotInitialized

Se utiliza para indicar que no se inicializó el agente de túnel.

kState_PrimaryAndBkupTunModeEstablished

Se usa para indicar que se establecieron el túnel principal y el de respaldo.

kState_PrimaryTunModeEstablished

Se usa para indicar que se estableció el túnel principal para el servicio.

AgentState

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

Estados del agente de túnel en relación con sus conexiones con el Servicio.

OnServiceTunnelReconnectNotifyFunct

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

Puntero de función al controlador establecido por una capa superior cuando se recibe una reconexión de túnel del servicio.

Detalles
Parámetros
[in] tunType
El tipo de túnel, principal o de copia de seguridad.
[in] reconnectHost
El nombre de host que proporciona el servicio al que se debe volver a conectar.
[in] reconnectPort
El puerto de destino que proporciona el servicio al que se debe volver a establecer la conexión.
[in] appCtxt
Un puntero a un objeto de contexto de la aplicación

OnServiceTunnelStatusNotifyFunct

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

Puntero de función al controlador establecido por una capa superior para actuar sobre varias notificaciones relacionadas con el túnel hacia el Service.

Detalles
Parámetros
[in] reason
El motivo de la notificación de estado a la aplicación.
[in] err
Se encontró un error de Weave, si corresponde
[in] appCtxt
Un puntero a un objeto de contexto de la aplicación

PlatformNetworkOnlineCheck

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

Puntero de función a un controlador proporcionado por la aplicación para realizar una verificación en línea a nivel de la red.

Detalles
Parámetros
[in] tunType
El tipo de túnel, principal o de copia de seguridad.
[in] appCtxt
Un puntero a un objeto de contexto de la aplicación

WeaveTunnelFlags

 WeaveTunnelFlags

Bits de bandera del túnel de Weave.

Propiedades
kTunnelFlag_BackupEnabled

Se establece cuando el túnel de copia de seguridad está habilitado.

kTunnelFlag_BackupRestricted

Se establece cuando el túnel de respaldo tiene un enrutamiento restringido.

kTunnelFlag_PrimaryEnabled

Se establece cuando el túnel principal está habilitado.

kTunnelFlag_PrimaryRestricted

Se establece cuando el túnel principal tiene un enrutamiento restringido.

WeaveTunnelFlags

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

Bits de bandera del túnel de Weave.

Atributos públicos

NetworkOnlineCheck

PlatformNetworkOnlineCheck NetworkOnlineCheck

OnServiceTunReconnectNotify

OnServiceTunnelReconnectNotifyFunct OnServiceTunReconnectNotify

OnServiceTunStatusNotify

OnServiceTunnelStatusNotifyFunct OnServiceTunStatusNotify

Puntero de función al controlador establecido por una capa superior para actuar sobre varias notificaciones relacionadas con el túnel hacia el Service.

mServiceMgr

WeaveServiceManager * mServiceMgr

Puntero de Service Manager que se usa para buscar servicios y conectarse a él.

Funciones públicas

DisablePrimaryTunnel

void DisablePrimaryTunnel(
  void
)

Inhabilitar el túnel principal

Inhabilita el túnel principal.

EnablePrimaryTunnel

void EnablePrimaryTunnel(
  void
)

Habilitar el túnel principal

Habilita el túnel principal.

GetAgentStateName

const char * GetAgentStateName(
  const AgentState state
)

Obtén el nombre WeaveTunnelAgentState.

GetTimeMsec

uint64_t GetTimeMsec(
  void
)

Obtén la hora del sistema en milisegundos.

Obtén la hora del sistema o la hora monótona en milisegundos si la hora del sistema no está disponible.

GetWeaveTunnelAgentState

AgentState GetWeaveTunnelAgentState(
  void
)

Obtén el estado de TunnelAgent.

Detalles
Qué muestra
AgentState es el estado actual 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
)

Inicializa el agente de túnel.

Esto crea el objeto de extremo Tunnel, configura la interfaz del túnel, inicializa las variables de los miembros, las devoluciones de llamada y WeaveTunnelControl.

Init

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

Inicializa el agente de túnel.

Esto crea el objeto de extremo Tunnel, configura la interfaz del túnel, inicializa las variables de los miembros, las devoluciones de llamada y WeaveTunnelControl.

IsPrimaryTunnelEnabled

bool IsPrimaryTunnelEnabled(
  void
) const 

Verifica si el túnel principal está habilitado.

Detalles
Qué muestra
Es verdadero si está habilitado; de lo contrario, es falso.

IsPrimaryTunnelRoutingRestricted

bool IsPrimaryTunnelRoutingRestricted(
  void
)

Comprueba si el túnel principal está sujeto a las restricciones de enrutamiento del servicio.

Comprueba si el túnel principal está sujeto a restricciones de enrutamiento.

Detalles
Qué muestra
Es verdadero si el túnel principal se establece, pero está sujeto a las restricciones de enrutamiento del servicio.

IsTunnelRoutingRestricted

bool IsTunnelRoutingRestricted(
  void
)

Comprueba si el túnel está sujeto a restricciones de enrutamiento del servicio.

Comprueba si el túnel está sujeto a restricciones de enrutamiento.

Detalles
Qué muestra
true si se establece el túnel principal o el de respaldo, y ambos están sujetos a restricciones de enrutamiento por parte del servicio.

NetworkOnlineCheckResult

void NetworkOnlineCheckResult(
  TunnelType tunType,
  bool isOnline
)

Es la devolución de llamada que invoca la plataforma cuando el resultado del verificador en línea de la red está disponible.

Detalles
Parámetros
[in] tunType
El tipo de túnel correspondiente a la interfaz a través de la cual se realiza la verificación de conectividad de red.
[in] isOnline
Es verdadero si la red está en línea; de lo contrario, es falso.

ResetPrimaryReconnectBackoff

WEAVE_ERROR ResetPrimaryReconnectBackoff(
  bool reconnectImmediately
)

Restablece el tiempo de reconexión del túnel principal.

Detalles
Parámetros
[in] reconnectImmediately
Es verdadero si es necesario volver a conectarse de inmediato, de lo contrario, se usa el tiempo de espera de conexión configurado.

SetAuthMode

void SetAuthMode(
  const WeaveAuthMode authMode
)

Configura WeaveAuthMode para el túnel.

Detalles
Parámetros
[in] authMode
Modo de autenticación de Weave que se usa con el intercambio de tráfico.

SetDestination

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

Establece el nodeId de destino, la dirección IP y el puerto para el túnel.

Establece el nodeId y la dirección IP de destino para el túnel.

Detalles
Parámetros
[in] nodeId
ID de nodo del nodo de destino.
[in] ipAddr
Dirección IP del nodo de destino.
[in] servicePort
Puerto del nodo de destino.

SetTunnelingDeviceRole

void SetTunnelingDeviceRole(
  const Role role
)

Establece el rol del dispositivo de tunelización(BorderGateway, StandaloneDevice, MobileDevice) para el túnel.

Establece el rol del dispositivo de tunelización(BorderGateway o independiente) para el túnel.

Detalles
Parámetros
[in] role
Rol asumido por el agente de túnel; puerta de enlace fronteriza, independiente o dispositivo móvil.

Cierre

WEAVE_ERROR Shutdown(
  void
)

Apaga el agente de túnel.

Esta acción finaliza la conexión con el Service y cierra la interfaz de TunEndPoint después de quitar las direcciones y rutas asociadas con la interfaz del túnel.

Esta acción finaliza la conexión con el Service y cierra la interfaz de TunEndPoint después de quitar las direcciones y rutas asociadas con la interfaz del túnel.

Detalles
Qué muestra
WEAVE_NO_ERROR si la operación se realiza correctamente; de lo contrario, se trata de un tipo WEAVE_ERROR correspondiente.

StartServiceTunnel

WEAVE_ERROR StartServiceTunnel(
  void
)

Inicia el túnel de servicio.

Esto habilita el túnel y trata de establecer una conexión con el Service.

Con esta acción, se intenta establecer una conexión con el Service y también se establece la ruta de la estructura a la interfaz del túnel.

Detalles
Qué muestra
WEAVE_NO_ERROR si la operación se realiza correctamente; de lo contrario, se trata de un tipo WEAVE_ERROR correspondiente.

StartServiceTunnel

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

Inicia el túnel de servicio.

Esto habilita el túnel y trata de establecer una conexión con el Service.

StopServiceTunnel

void StopServiceTunnel(
  void
)

Cierra la conexión de túnel con el servicio.

StopServiceTunnel

void StopServiceTunnel(
  WEAVE_ERROR err
)

Cierra la conexión de túnel con el servicio.

Detalles
Parámetros
[in] err
WEAVE_NO_ERROR si no hay un motivo específico para esta solicitud de StopServiceTunnel, de lo contrario, se transmitirá la causa del error.

WeaveTunnelAgent

 WeaveTunnelAgent(
  void
)

Funciones estáticas públicas

RecvdFromShortcutUDPTunnel

void RecvdFromShortcutUDPTunnel(
  WeaveMessageLayer *msgLayer,
  PacketBuffer *message
)

El controlador recibirá paquetes IPv6 en túnel a través del túnel UDP de acceso directo entre la puerta de enlace fronteriza y el dispositivo móvil, y reenviará a la interfaz del extremo del túnel después de desencapsular el paquete IPv6 sin procesar desde el encabezado del túnel.

Controlador para recibir paquetes IPv6 en túnel de la conexión TCP del servicio y reenviar a la interfaz del extremo de túnel después de desencapsular el paquete IPv6 sin procesar desde el encabezado del túnel.

Detalles
Parámetros
[in] con
Un puntero para el objeto WeaveConnection.
[in] msgInfo
Un puntero para el objeto WeaveMessageInfo.
[in] message
Un puntero al objeto PacketBuffer que contiene el paquete IPv6 tunelizado.

RecvdFromTunnelEndPoint

void RecvdFromTunnelEndPoint(
  TunEndPoint *tunEP,
  PacketBuffer *message
)

Controlador para recibir paquetes IPv6 de la interfaz de Tunnel EndPoint y reenviarlos, ya sea al Service a través de la conexión TCP del Service después de encapsular el paquete IPv6 dentro del encabezado del túnel o al cliente móvil a través de un túnel de acceso directo.

Controlador para recibir paquetes IPv6 de la interfaz de Tunnel EndPoint y reenviarlos, ya sea al servicio a través de la conexión TCP del servicio después de encapsular el paquete IPv6 dentro del encabezado del túnel o al cliente móvil a través de un túnel local.

Si la conexión del servicio aún no está activa, el mensaje se pondrá en cola hasta que se configure la conexión. Para la tunelización al dispositivo cliente móvil, se hace referencia a la tabla de vecino del siguiente salto.

Si la conexión del servicio aún no está activa, el mensaje se pondrá en cola hasta que se configure la conexión. Para la tunelización al dispositivo cliente móvil, se hace referencia a la tabla de vecino del siguiente salto.

Detalles
Parámetros
[in] tunEP
Un puntero para el objeto TunEndPoint.
[in] message
Un puntero al objeto PacketBuffer que contiene el paquete IPv6 sin procesar.