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 Service.
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 al 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 de Weave Tunnel.
WeaveTunnelFlags typedef
Bits de bandera de Weave Tunnel.

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 al Service.
mServiceMgr
WeaveServiceManager *
Puntero del administrador de servicios que se usa para buscar servicios y conectarse a él.

Funciones públicas

DisablePrimaryTunnel(void)
void
Inhabilitar túnel principal
EnablePrimaryTunnel(void)
void
Habilitar el túnel principal
GetAgentStateName(const AgentState state)
const char *
Obtén el nombre de WeaveTunnelAgentState.
GetTimeMsec(void)
uint64_t
Obtiene 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 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 el WeaveAuthMode para el túnel.
SetDestination(const uint64_t nodeId, const IPAddress ipAddr, const uint16_t servicePort)
void
Configura el nodeId de destino, la dirección IP y el puerto del túnel.
SetTunnelingDeviceRole(const Role role)
void
Configura el rol Dispositivo de túnel(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 del túnel al servicio.
StopServiceTunnel(WEAVE_ERROR err)
void
Cierra la conexión del túnel al servicio.

Funciones estáticas públicas

RecvdFromShortcutUDPTunnel(WeaveMessageLayer *msgLayer, PacketBuffer *message)
void
Controlador para recibir paquetes IPv6 tunelizados a través del túnel UDP de acceso directo entre la puerta de enlace fronteriza y el dispositivo móvil, y reenviarlos a la interfaz de Tunnel EndPoint 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 de dispositivo móvil a través de un túnel de atajos.

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 el agente de túnel se inicializó, pero no se estableció ningún túnel.

kState_NotInitialized

Se usa 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 hacia 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 Service.

Detalles
Parámetros
[in] tunType
El tipo de túnel, principal o de respaldo.
[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 Service al que se debe reconectar.
[in] appCtxt
Un puntero a un objeto de contexto de 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 al 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 existe.
[in] appCtxt
Un puntero a un objeto de contexto de 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 respaldo.
[in] appCtxt
Un puntero a un objeto de contexto de aplicación

WeaveTunnelFlags

 WeaveTunnelFlags

Bits de bandera de Weave Tunnel.

Propiedades
kTunnelFlag_BackupEnabled

Se establece cuando se habilita el túnel de respaldo.

kTunnelFlag_BackupRestricted

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

kTunnelFlag_PrimaryEnabled

Se establece cuando se habilita el túnel principal.

kTunnelFlag_PrimaryRestricted

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

WeaveTunnelFlags

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

Bits de bandera de Weave Tunnel.

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 al Service.

mServiceMgr

WeaveServiceManager * mServiceMgr

Puntero del administrador de servicios que se usa para buscar servicios y conectarse a él.

Funciones públicas

DisablePrimaryTunnel

void DisablePrimaryTunnel(
  void
)

Inhabilitar túnel principal

Inhabilitar el túnel principal

.

EnablePrimaryTunnel

void EnablePrimaryTunnel(
  void
)

Habilitar el túnel principal

Habilitar el túnel principal

.

GetAgentStateName

const char * GetAgentStateName(
  const AgentState state
)

Obtén el nombre de WeaveTunnelAgentState.

GetTimeMsec

uint64_t GetTimeMsec(
  void
)

Obtiene la hora del sistema en milisegundos.

Obtiene 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
Resultado que se muestra
AgentState: 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 de Tunnel, configura la interfaz del túnel, inicializa las variables de miembro, 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 de Tunnel, configura la interfaz del túnel, inicializa las variables de miembro, las devoluciones de llamada y WeaveTunnelControl.

IsPrimaryTunnelEnabled

bool IsPrimaryTunnelEnabled(
  void
) const 

Verifica si el túnel principal está habilitado.

Detalles
Resultado que se muestra
true si está habilitada; de lo contrario, false.

IsPrimaryTunnelRoutingRestricted

bool IsPrimaryTunnelRoutingRestricted(
  void
)

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

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

Detalles
Resultado que se muestra
true si se establece el túnel principal, pero está sujeto a 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
Resultado que se muestra
true si se establece el túnel principal o de respaldo, y cualquiera de ellos está sujeto 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 sobre la que 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
Verdadero si se requiere para volver a conectarse de inmediato; de lo contrario, se usará el tiempo de espera de conciliación configurado.

SetAuthMode

void SetAuthMode(
  const WeaveAuthMode authMode
)

Configura el WeaveAuthMode para el túnel.

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

SetDestination

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

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

Configura el nodeId y la IPAddress de destino para el túnel.

Detalles
Parámetros
[in] nodeId
Es el ID 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
)

Configura el rol Dispositivo de túnel(BorderGateway, StandaloneDevice, MobileDevice) para el túnel.

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

Detalles
Parámetros
[in] role
Rol que asume el agente de túnel. Puerta de enlace de frontera, dispositivo independiente o móvil.

Cierre

WEAVE_ERROR Shutdown(
  void
)

Apaga el agente de túnel.

De esta manera, se elimina la conexión con el Service y se cierra la interfaz de TunEndPoint después de quitar las direcciones y rutas asociadas con la interfaz del túnel.

De esta manera, se elimina la conexión con el Service y se cierra la interfaz de TunEndPoint después de quitar las direcciones y rutas asociadas con la interfaz del túnel.

Detalles
Resultado que se muestra
WEAVE_NO_ERROR si la operación se realiza correctamente; de lo contrario, se usará el tipo de 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 servicio y se establece la ruta de la estructura hacia la interfaz del túnel.

Detalles
Resultado que se muestra
WEAVE_NO_ERROR si la operación se realiza correctamente; de lo contrario, se usará el tipo de 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 del túnel al servicio.

StopServiceTunnel

void StopServiceTunnel(
  WEAVE_ERROR err
)

Cierra la conexión del túnel al 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ía la causa del error.

WeaveTunnelAgent

 WeaveTunnelAgent(
  void
)

Funciones estáticas públicas

RecvdFromShortcutUDPTunnel

void RecvdFromShortcutUDPTunnel(
  WeaveMessageLayer *msgLayer,
  PacketBuffer *message
)

Controlador para recibir paquetes IPv6 tunelizados a través del túnel UDP de acceso directo entre la puerta de enlace fronteriza y el dispositivo móvil, y reenviarlos a la interfaz de Tunnel EndPoint después de desencapsular el paquete IPv6 sin procesar desde el encabezado del túnel.

Controlador para recibir paquetes IPv6 en túnel desde la conexión TCP del Service 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 al objeto WeaveConnection.
[in] msgInfo
Un puntero al objeto WeaveMessageInfo.
[in] message
Un puntero al objeto packageBuffer 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 de dispositivo móvil a través de un túnel de atajos.

Controlador para recibir paquetes IPv6 desde 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 de dispositivo móvil a través de un túnel local.

Si la conexión del servicio aún no ha finalizado, el mensaje estará 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 vecinos de nexthop.

Si la conexión del servicio aún no ha finalizado, el mensaje estará 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 vecinos de nexthop.

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