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

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

Esta clase encapsula todos los estados de conexión del túnel de Weave y la lógica y las funciones de administración asociadas.

Resumen

Se usaría una instancia de esta clase para administrar el túnel sobre cada interfaz a través de la cual existiría el túnel de Weave al Service.

Constructores y destructores

WeaveTunnelConnectionMgr(void)

Tipos públicos

ConnectPolicyCallback)(void *const appState, ReconnectParam &reconnectParam, uint32_t &delayMsec) typedef
void(*
Es la devolución de llamada para recuperar el intervalo de tiempo que se debe esperar antes de que se reconecte el próximo túnel.
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
}
enum
TunnelConnNotifyReasons typedef
TunnelConnectionState{
  kState_NotConnected = 0,
  kState_Connecting = 1,
  kState_ConnectionEstablished = 2,
  kState_TunnelOpen = 3,
  kState_TunnelClosing = 4,
  kState_ReconnectRecvd = 5
}
enum
TunnelConnectionState typedef

Atributos públicos

mServiceConnDelayPolicyCallback

Funciones públicas

Init(WeaveTunnelAgent *tunAgent, TunnelType tunType, SrcInterfaceType srcIntfType, const char *connIntfName)
ServiceTunnelClose(WEAVE_ERROR err)
void
Cierra el túnel de servicio.
SetInterfaceName(const char *intfName)
void
Configura InterfaceName para la conexión de túnel.
SetInterfaceType(const SrcInterfaceType srcIntfType)
void
Configura SrcInterfaceType para la conexión de túnel.
Shutdown(void)
void
StopAndReconnectTunnelConn(ReconnectParam & reconnParam)
void
Detén la conexión del túnel de servicio y vuelve a intentar la conexión.
TryConnectingNow(void)
Intenta establecer una conexión con el Servicio.

Funciones estáticas públicas

DefaultReconnectPolicyCallback(void *const appstate, ReconnectParam & reconnectParam, uint32_t & delayMsec)
void
Es la implementación de la política predeterminada para recuperar la próxima vez que se conecte al servicio.
HandleServiceConnectionClosed(WeaveConnection *con, WEAVE_ERROR conErr)
void
El controlador se invoca cuando se cierra la conexión TCP del servicio.
HandleServiceConnectionComplete(WeaveConnection *con, WEAVE_ERROR conErr)
void
El controlador se invoca cuando se completa la conexión TCP del servicio.
RecvdFromService(WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *message)
void
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.
ServiceMgrStatusHandler(void *appState, WEAVE_ERROR err, StatusReport *report)
void
El controlador se invoca si el administrador del servicio no pudo establecer la conexión TCP con el servicio.

Tipos públicos

ConnectPolicyCallback

void(* ConnectPolicyCallback)(void *const appState, ReconnectParam &reconnectParam, uint32_t &delayMsec)

Es la devolución de llamada para recuperar el intervalo de tiempo que se debe esperar antes de que se reconecte el próximo túnel.

Detalles
Parámetros
[in] appState
Puntero de estado de la app configurado durante la inicialización de SubscriptionClient.
[in] reconnectParam
Estructura con parámetros que influyen en el cálculo del retraso de reconexión.
[out] delayMsec
Tiempo en milisegundos que se debe esperar antes del próximo intento de reconexión.

TunnelConnNotifyReasons

 TunnelConnNotifyReasons
Propiedades
kStatus_TunBackupConnError

Se usa para indicar que falló un intento de conexión con el túnel de respaldo o que el intercambio de tráfico anuló o cerró uno existente de forma local.

kStatus_TunBackupLiveness

Se usa para indicar información sobre el sondeo de funcionamiento del túnel en el túnel de respaldo de tejido.

kStatus_TunBackupOnlyDown

Se usa para indicar que el túnel de respaldo está inactivo.

kStatus_TunBackupReconnectRcvd

Se usa para indicar que el servicio solicitó una reconexión al túnel Backup Weave.

kStatus_TunBackupUp

Se usa para indicar que el túnel de respaldo de Weave está activo.

kStatus_TunDown

Se usa para indicar que el túnel de Weave se cayó.

kStatus_TunFailoverToBackup

Se usa para indicar que el túnel principal está inactivo y que se realizó el cambio al túnel de respaldo.

kStatus_TunPrimaryAndBackupUp

Se usa para indicar que tanto el túnel principal como el de respaldo de Weave están hacia arriba.

kStatus_TunPrimaryConnError

Se usa para indicar que falló un intento de conexión de túnel principal o que el intercambio de tráfico anuló o cerró uno existente de forma local.

kStatus_TunPrimaryLiveness

Se usa para indicar información sobre el sondeo de funcionamiento del túnel en el túnel de tejido principal.

kStatus_TunPrimaryReconnectRcvd

Se usa para indicar que el servicio solicitó una reconexión al túnel principal de Weave.

kStatus_TunPrimaryUp

Se usa para indicar que el túnel principal de Weave está activo.

TunnelConnNotifyReasons

enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelConnectionMgr::TunnelConnNotifyReasons TunnelConnNotifyReasons

TunnelConnectionState

 TunnelConnectionState
Propiedades
kState_Connecting

Se usa para indicar que se inició la conexión del túnel de Weave.

kState_ConnectionEstablished

Se usa para indicar que se estableció la conexión con el túnel de Weave y que se está intercambiando información de ruta.

kState_NotConnected

Se usa para indicar que el túnel de Weave no está conectado.

kState_ReconnectRecvd

Se usa para indicar que el Service desea que la puerta de enlace fronteriza se vuelva a conectar después de una búsqueda en el directorio.

kState_TunnelClosing

Se usa para indicar que el túnel de Weave se está cerrando y la conexión se está eliminando.

kState_TunnelOpen

Se usa para indicar que el túnel de Weave está abierto y listo para el tránsito de tráfico de datos.

TunnelConnectionState

enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelConnectionMgr::TunnelConnectionState TunnelConnectionState

Atributos públicos

mServiceConnDelayPolicyCallback

ConnectPolicyCallback mServiceConnDelayPolicyCallback

Funciones públicas

Init

WEAVE_ERROR Init(
  WeaveTunnelAgent *tunAgent,
  TunnelType tunType,
  SrcInterfaceType srcIntfType,
  const char *connIntfName
)

ServiceTunnelClose

void ServiceTunnelClose(
  WEAVE_ERROR err
)

Cierra el túnel de servicio.

Detalles
Parámetros
[in] err
El emisor pasó un WEAVE_ERROR.

SetInterfaceName

void SetInterfaceName(
  const char *intfName
)

Configura InterfaceName para la conexión de túnel.

Detalles
Parámetros
[in] tunIntf
El InterfaceName para configurar la conexión del túnel de servicio.

SetInterfaceType

void SetInterfaceType(
  const SrcInterfaceType srcIntfType
)

Configura SrcInterfaceType para la conexión de túnel.

Detalles
Parámetros
[in] srcIntfType
El tipo de tecnología de red de la interfaz para la conexión del túnel de servicio.

Cierre

void Shutdown(
  void
)

StopAndReconnectTunnelConn

void StopAndReconnectTunnelConn(
  ReconnectParam & reconnParam
)

Detén la conexión del túnel de servicio y vuelve a intentar la conexión.

Detalles
Parámetros
[in] err
El emisor pasó un WEAVE_ERROR.

TryConnectingNow

WEAVE_ERROR TryConnectingNow(
  void
)

Intenta establecer una conexión con el Servicio.

Intenta establecer una conexión con el Servicio usando ServiceManager o directamente.

WeaveTunnelConnectionMgr

 WeaveTunnelConnectionMgr(
  void
)

Funciones estáticas públicas

DefaultReconnectPolicyCallback

void DefaultReconnectPolicyCallback(
  void *const appstate,
  ReconnectParam & reconnectParam,
  uint32_t & delayMsec
)

Es la implementación de la política predeterminada para recuperar la próxima vez que se conecte al servicio.

Esta política elige una franja horaria aleatoria (con resolución de milisegundos) en un período creciente, siguiendo una secuencia de Fibonacci hasta WEAVE_CONFIG_TUNNELING_RECONNECT_MAX_FIBONACCI_INDEX.

Detalles
Parámetros
[in] appState
Puntero de estado de la app configurado durante la inicialización de SubscriptionClient.
[in] reconnectParam
Estructura con parámetros que influyen en el cálculo del retraso de reconexión.
[out] delayMsec
Tiempo en milisegundos que se debe esperar antes del próximo intento de reconexión.

HandleServiceConnectionClosed

void HandleServiceConnectionClosed(
  WeaveConnection *con,
  WEAVE_ERROR conErr
)

El controlador se invoca cuando se cierra la conexión TCP del servicio.

El dispositivo intenta restablecer la conexión con el servicio si mServiceConKeepAlive está configurado como verdadero.

Luego, el dispositivo intenta restablecer la conexión con el Servicio.

Detalles
Parámetros
[in] con
Un puntero para el objeto WeaveConnection.
[in] conErr
Cualquier error dentro de WeaveConnection o WEAVE_NO_ERROR

HandleServiceConnectionComplete

void HandleServiceConnectionComplete(
  WeaveConnection *con,
  WEAVE_ERROR conErr
)

El controlador se invoca cuando se completa la conexión TCP del servicio.

El dispositivo inicia los comandos de control de túneles para el servicio desde esta función.

El dispositivo inicia los comandos de control de túneles para el servicio desde esta función.

Detalles
Parámetros
[in] con
Un puntero para el objeto WeaveConnection.
[in] conErr
Cualquier error dentro de WeaveConnection o WEAVE_NO_ERROR

RecvdFromService

void RecvdFromService(
  WeaveConnection *con,
  const WeaveMessageInfo *msgInfo,
  PacketBuffer *message
)

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.

ServiceMgrStatusHandler

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

El controlador se invoca si el administrador del servicio no pudo establecer la conexión TCP con el servicio.