нл:: Переплетение:: Профили:: ВеавеТуннель:: WeaveTunnelConnectionMgr

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

Этот класс инкапсулирует все состояния подключения туннеля Weave, а также соответствующую логику и функции управления.

Краткое содержание

Экземпляр этого класса будет использоваться для управления туннелем через каждый интерфейс, через который будет существовать туннель Weave к Сервису.

Конструкторы и деструкторы

WeaveTunnelConnectionMgr (void)

Публичные типы

ConnectPolicyCallback )(void *const appState, ReconnectParam &reconnectParam, uint32_t &delayMsec) определение типа
void(*
Обратный вызов для получения интервала времени ожидания перед следующим повторным подключением туннеля.
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
}
перечисление
TunnelConnNotifyReasons определение типа
TunnelConnectionState {
kState_NotConnected = 0,
kState_Connecting = 1,
kState_ConnectionEstablished = 2,
kState_TunnelOpen = 3,
kState_TunnelClosing = 4,
kState_ReconnectRecvd = 5
}
перечисление
TunnelConnectionState определение типа

Публичные атрибуты

mServiceConnDelayPolicyCallback

Общественные функции

Init ( WeaveTunnelAgent *tunAgent, TunnelType tunType, SrcInterfaceType srcIntfType, const char *connIntfName)
Инициализируйте WeaveTunnelConnectionMgr .
ServiceTunnelClose ( WEAVE_ERROR err)
void
Закройте служебный туннель.
SetInterfaceName (const char *intfName)
void
Установите имя интерфейса для туннельного подключения.
SetInterfaceType (const SrcInterfaceType srcIntfType)
void
Установите SrcInterfaceType для туннельного подключения.
Shutdown (void)
void
Завершите работу WeaveTunnelConnectionMgr .
StopAndReconnectTunnelConn ( ReconnectParam & reconnParam)
void
Остановите соединение с туннелем службы и попытайтесь повторно подключиться.
TryConnectingNow (void)
Попытайтесь установить соединение с Сервисом.

Публичные статические функции

DefaultReconnectPolicyCallback (void *const appstate, ReconnectParam & reconnectParam, uint32_t & delayMsec)
void
Реализация политики по умолчанию для получения данных при следующем подключении к Сервису.
HandleServiceConnectionClosed ( WeaveConnection *con, WEAVE_ERROR conErr)
void
Обработчик вызывается, когда TCP-соединение службы закрывается.
HandleServiceConnectionComplete ( WeaveConnection *con, WEAVE_ERROR conErr)
void
Обработчик вызывается после завершения TCP-соединения службы.
RecvdFromService ( WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *message)
void
Обработчик для получения туннелированных пакетов IPv6 из TCP-соединения службы и их пересылки на интерфейс конечной точки туннеля после декапсуляции необработанного пакета IPv6 из заголовка туннеля.
ServiceMgrStatusHandler (void *appState, WEAVE_ERROR err, StatusReport *report)
void
Обработчик вызывается, если диспетчеру служб не удалось установить TCP-соединение со службой.

Публичные типы

Обратный вызов политики подключения

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

Обратный вызов для получения интервала времени ожидания перед следующим повторным подключением туннеля.

Подробности
Параметры
[in] appState
Указатель состояния приложения, установленный во время инициализации SubscriptionClient.
[in] reconnectParam
Структура с параметрами, влияющими на расчет задержки переподключения.
[out] delayMsec
Время ожидания в миллисекундах перед следующей попыткой повторного подключения.

TunnelConnNotifyReasons

 TunnelConnNotifyReasons
Характеристики
kStatus_TunBackupConnError

Используется для обозначения того, что попытка подключения к резервному туннелю не удалась или существующее было локально прервано или закрыто узлом.

kStatus_TunBackupLiveness

Используется для указания информации о проверке работоспособности туннеля в туннеле Backup Weave.

kStatus_TunBackupOnlyDown

Используется для обозначения того, что резервный туннель не работает.

kStatus_TunBackupReconnectRcvd

Используется для обозначения того, что Служба запросила повторное подключение к туннелю Backup Weave.

kStatus_TunBackupUp

Используется для указания того, что туннель Backup Weave работает.

kStatus_TunDown

Используется для обозначения того, что туннель Weave вышел из строя.

kStatus_TunFailoverToBackup

Используется для обозначения того, что основной туннель не работает и произошло переключение на резервный туннель.

kStatus_TunPrimaryAndBackupUp

Используется для обозначения того, что основной и резервный туннели Weave работают.

kStatus_TunPrimaryConnError

Используется для обозначения того, что попытка подключения к основному туннелю не удалась или существующее было локально прервано или закрыто узлом.

kStatus_TunPrimaryLiveness

Используется для указания информации о датчике жизнеспособности туннеля в туннеле Primary Weave.

kStatus_TunPrimaryReconnectRcvd

Используется для обозначения того, что Служба запросила повторное подключение к туннелю Primary Weave.

kStatus_TunPrimaryUp

Используется для указания того, что основной туннель Weave работает.

TunnelConnNotifyReasons

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

Туннельконнектионстате

 TunnelConnectionState
Характеристики
kState_Connecting

Используется для обозначения того, что соединение Weave Tunnel было инициировано.

kState_ConnectionEstablished

Используется для обозначения того, что соединение Weave Tunnel установлено и происходит обмен информацией о маршруте.

kState_NotConnected

Используется для обозначения того, что туннель Weave не подключен.

kState_ReconnectRecvd

Используется, чтобы указать, что Служба хочет, чтобы пограничный шлюз повторно подключился после поиска в каталоге.

kState_TunnelClosing

Используется для обозначения того, что туннель Weave закрывается и соединение разрывается.

kState_TunnelOpen

Используется для обозначения того, что Weave Tunnel открыт и готов к передаче трафика данных.

Туннельконнектионстате

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

Публичные атрибуты

мсервицеконнделайполициколлбэк

ConnectPolicyCallback mServiceConnDelayPolicyCallback

Общественные функции

В этом

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

Инициализируйте WeaveTunnelConnectionMgr .

СервисТуннельЗакрыть

void ServiceTunnelClose(
  WEAVE_ERROR err
)

Закройте служебный туннель.

Подробности
Параметры
[in] err
От вызывающей стороны передано сообщение WEAVE_ERROR.

SetInterfaceName

void SetInterfaceName(
  const char *intfName
)

Установите имя интерфейса для туннельного подключения.

Подробности
Параметры
[in] tunIntf
Имя интерфейса для настройки подключения к туннелю службы.

SetInterfaceType

void SetInterfaceType(
  const SrcInterfaceType srcIntfType
)

Установите SrcInterfaceType для туннельного подключения.

Подробности
Параметры
[in] srcIntfType
Тип сетевой технологии интерфейса для подключения служебного туннеля.

Неисправность

void Shutdown(
  void
)

Завершите работу WeaveTunnelConnectionMgr .

СтопАнРеконнектТуннелКонн

void StopAndReconnectTunnelConn(
  ReconnectParam & reconnParam
)

Остановите соединение с туннелем службы и попытайтесь повторно подключиться.

Подробности
Параметры
[in] err
От вызывающей стороны передано сообщение WEAVE_ERROR.

Попробуйте подключиться сейчас

WEAVE_ERROR TryConnectingNow(
  void
)

Попытайтесь установить соединение с Сервисом.

Попробуйте установить соединение со Службой либо с помощью ServiceManager, либо напрямую.

WeaveTunnelConnectionMgr

 WeaveTunnelConnectionMgr(
  void
)

Публичные статические функции

ДефолтРеконнектПолициколлбэк

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

Реализация политики по умолчанию для получения данных при следующем подключении к Сервису.

Эта политика выбирает случайный временной интервал (с миллисекундным разрешением) в увеличивающемся окне, следуя последовательности Фибоначчи до WEAVE_CONFIG_TUNNELING_RECONNECT_MAX_FIBONACCI_INDEX.

Подробности
Параметры
[in] appState
Указатель состояния приложения, установленный во время инициализации SubscriptionClient.
[in] reconnectParam
Структура с параметрами, влияющими на расчет задержки переподключения.
[out] delayMsec
Время ожидания в миллисекундах перед следующей попыткой повторного подключения.

РучкаServiceConnectionClosed

void HandleServiceConnectionClosed(
  WeaveConnection *con,
  WEAVE_ERROR conErr
)

Обработчик вызывается, когда TCP-соединение службы закрывается.

Устройство пытается восстановить соединение со службой, если для mServiceConKeepAlive установлено значение true.

Впоследствии устройство пытается восстановить соединение со Службой.

Подробности
Параметры
[in] con
Указатель на объект WeaveConnection .
[in] conErr
Любая ошибка в WeaveConnection или WEAVE_NO_ERROR.

HandleServiceConnectionComplete

void HandleServiceConnectionComplete(
  WeaveConnection *con,
  WEAVE_ERROR conErr
)

Обработчик вызывается после завершения TCP-соединения службы.

Устройство переходит к инициированию команд управления туннелем для Сервиса из этой функции.

Устройство переходит к инициированию команд управления туннелем для Сервиса из этой функции.

Подробности
Параметры
[in] con
Указатель на объект WeaveConnection .
[in] conErr
Любая ошибка в WeaveConnection или WEAVE_NO_ERROR.

Реквдфромсервице

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

Обработчик для получения туннелированных пакетов IPv6 из TCP-соединения службы и их пересылки на интерфейс конечной точки туннеля после декапсуляции необработанного пакета IPv6 из заголовка туннеля.

Подробности
Параметры
[in] con
Указатель на объект WeaveConnection .
[in] msgInfo
Указатель на объект WeaveMessageInfo .
[in] message
Указатель на объект PacketBuffer, содержащий туннелированный пакет IPv6.

Обработчик службыMgrStatusHandler

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

Обработчик вызывается, если диспетчеру служб не удалось установить TCP-соединение со службой.