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á una instancia de esta clase para administrar el túnel en cada interfaz a través de la cual existiría el túnel de Weave hacia el 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 de espera antes de que se vuelva a conectar el siguiente 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 Service.
SetInterfaceName(const char *intfName)
void
Configura el InterfaceName para la conexión del 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 establecer la conexión.
TryConnectingNow(void)
Intentar establecer una conexión con el servicio

Funciones estáticas públicas

DefaultReconnectPolicyCallback(void *const appstate, ReconnectParam & reconnectParam, uint32_t & delayMsec)
void
La implementación de la política predeterminada para recuperar la próxima vez que te conectes al servicio.
HandleServiceConnectionClosed(WeaveConnection *con, WEAVE_ERROR conErr)
void
Controlador que se invoca cuando se cierra la conexión TCP del servicio.
HandleServiceConnectionComplete(WeaveConnection *con, WEAVE_ERROR conErr)
void
Controlador que 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 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.
ServiceMgrStatusHandler(void *appState, WEAVE_ERROR err, StatusReport *report)
void
Controlador que se invoca si el administrador de servicios 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 de espera antes de que se vuelva a conectar el siguiente túnel.

Detalles
Parámetros
[in] appState
Puntero de estado de la app establecido 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 de túnel de respaldo o que un intercambio de tráfico anuló o cerró de forma local.

kStatus_TunBackupLiveness

Se usa para indicar información sobre el sondeo de funcionamiento del túnel en el túnel de copia de seguridad de Weave.

kStatus_TunBackupOnlyDown

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

kStatus_TunBackupReconnectRcvd

Se usa para indicar que el Service solicitó una reconexión para el túnel de copia de seguridad de Weave.

kStatus_TunBackupUp

Se usa para indicar que el túnel de Weave de respaldo 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 se produjo un cambio al túnel de respaldo.

kStatus_TunPrimaryAndBackupUp

Se usa para indicar que el túnel de tejido principal y secundario están activos.

kStatus_TunPrimaryConnError

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

kStatus_TunPrimaryLiveness

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

kStatus_TunPrimaryReconnectRcvd

Se usa para indicar que el Service solicitó una reconexión para el túnel de tejido principal.

kStatus_TunPrimaryUp

Se usa para indicar que el túnel de Weave principal 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 de túnel de Weave y que se está intercambiando información de la 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 quiere que la puerta de enlace fronteriza se vuelva a conectar después de una búsqueda de directorio.

kState_TunnelClosing

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

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

.

Detalles
Parámetros
[in] err
Se pasó un WEAVE_ERROR desde el emisor.

SetInterfaceName

void SetInterfaceName(
  const char *intfName
)

Configura el InterfaceName para la conexión del túnel.

Detalles
Parámetros
[in] tunIntf
El InterfaceName para configurar la conexión del túnel del 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 servicios.

Cierre

void Shutdown(
  void
)

StopAndReconnectTunnelConn

void StopAndReconnectTunnelConn(
  ReconnectParam & reconnParam
)

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

Detalles
Parámetros
[in] err
Se pasó un WEAVE_ERROR desde el emisor.

TryConnectingNow

WEAVE_ERROR TryConnectingNow(
  void
)

Intentar establecer una conexión con el servicio

Intenta establecer una conexión con el Service, ya sea a través de ServiceManager o directamente.

WeaveTunnelConnectionMgr

 WeaveTunnelConnectionMgr(
  void
)

Funciones estáticas públicas

DefaultReconnectPolicyCallback

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

La implementación de la política predeterminada para recuperar la próxima vez que te conectes al servicio.

Esta política selecciona un intervalo de tiempo aleatorio (con resolución en milisegundos) en un período creciente, después de una secuencia de Fibonacci de hasta WEAVE_CONFIG_TUNNELING_RECONNECT_MAX_FIBONACCI_INDEX.

Detalles
Parámetros
[in] appState
Puntero de estado de la app establecido 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
)

Controlador que 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 intentará restablecer la conexión con el servicio.

Detalles
Parámetros
[in] con
Un puntero al objeto WeaveConnection.
[in] conErr
Cualquier error en WeaveConnection o WEAVE_NO_ERROR.

HandleServiceConnectionComplete

void HandleServiceConnectionComplete(
  WeaveConnection *con,
  WEAVE_ERROR conErr
)

Controlador que se invoca cuando se completa la conexión TCP del servicio.

El dispositivo inicia los comandos de control del túnel al Service desde esta función.

El dispositivo inicia los comandos de control del túnel al Service desde esta función.

Detalles
Parámetros
[in] con
Un puntero al objeto WeaveConnection.
[in] conErr
Cualquier error en WeaveConnection o WEAVE_NO_ERROR.

RecvdFromService

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

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.

ServiceMgrStatusHandler

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

Controlador que se invoca si el administrador de servicios no pudo establecer la conexión TCP con el servicio.