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

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

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

WeaveTunnelAgent (void)

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

AgentState {
kState_NotInitialized = 0,
kState_Initialized_NoTunnel = 1,
kState_PrimaryTunModeEstablished = 2,
kState_BkupOnlyTunModeEstablished = 3,
kState_PrimaryAndBkupTunModeEstablished = 4
}
перечисление
Состояния Туннельного агента в отношении его подключения к Сервису.
AgentState определение типа
Состояния Туннельного агента в отношении его подключения к Сервису.
OnServiceTunnelReconnectNotifyFunct )(TunnelType tunType, const char *reconnectHost, const uint16_t reconnectPort, void *appCtxt) определение типа
void(*
Указатель функции на обработчик, установленный более высоким уровнем, когда от службы получено повторное подключение туннеля.
OnServiceTunnelStatusNotifyFunct )(WeaveTunnelConnectionMgr::TunnelConnNotifyReasons reason, WEAVE_ERROR err, void *appCtxt) определение типа
void(*
Указатель функции на обработчик, установленный более высоким уровнем для воздействия на различные уведомления, связанные с туннелем к Сервису.
PlatformNetworkOnlineCheck )(TunnelType tunType, void *appCtxt) определение типа
void(*
Указатель функции на обработчик, предоставляемый приложением для выполнения онлайн-проверки на уровне сети.
WeaveTunnelFlags {
kTunnelFlag_PrimaryEnabled = 0x01,
kTunnelFlag_BackupEnabled = 0x02,
kTunnelFlag_PrimaryRestricted = 0x04,
kTunnelFlag_BackupRestricted = 0x08
}
перечисление
Биты флага Weave Tunnel.
WeaveTunnelFlags определение типа
Биты флага Weave Tunnel.

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

NetworkOnlineCheck
OnServiceTunReconnectNotify
OnServiceTunStatusNotify
Указатель функции на обработчик, установленный более высоким уровнем для воздействия на различные уведомления, связанные с туннелем к Сервису.
mServiceMgr
WeaveServiceManager *
Указатель Service Manager, используемый для поиска и подключения к службе.

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

DisablePrimaryTunnel (void)
void
Отключить основной туннель.
EnablePrimaryTunnel (void)
void
Включить основной туннель.
GetAgentStateName (const AgentState state)
const char *
Получите имя WeaveTunnelAgentState.
GetTimeMsec (void)
uint64_t
Получите системное время в миллисекундах.
GetWeaveTunnelAgentState (void)
Получите состояние TunnelAgent.
Init (InetLayer *inet, WeaveExchangeManager *exchMgr, uint64_t dstNodeId, WeaveAuthMode authMode, WeaveServiceManager *svcMgr, const char *intfName, uint8_t role, void *appContext)
Инициализируйте агент туннеля.
Init (InetLayer *inet, WeaveExchangeManager *exchMgr, uint64_t dstNodeId, IPAddress dstIPAddr, WeaveAuthMode authMode, const char *intfName, uint8_t role, void *appContext)
Инициализируйте агент туннеля.
IsPrimaryTunnelEnabled (void) const
bool
Проверьте, включен ли основной туннель.
IsPrimaryTunnelRoutingRestricted (void)
bool
Проверьте, распространяется ли служба на ограничения маршрутизации на основной туннель.
IsTunnelRoutingRestricted (void)
bool
Проверьте, не распространяется ли на туннель ограничения маршрутизации со стороны службы.
NetworkOnlineCheckResult (TunnelType tunType, bool isOnline)
void
Обратный вызов, вызываемый платформой, когда доступен результат онлайн-проверки сети.
ResetPrimaryReconnectBackoff (bool reconnectImmediately)
Сбросьте время повторного подключения для основного туннеля.
SetAuthMode (const WeaveAuthMode authMode)
void
Установите WeaveAuthMode для туннеля.
SetDestination (const uint64_t nodeId, const IPAddress ipAddr, const uint16_t servicePort)
void
Установите идентификатор узла назначения, IP-адрес и порт для туннеля.
SetTunnelingDeviceRole (const Role role)
void
Установите роль туннельного устройства (BorderGateway, StandaloneDevice, MobileDevice) для туннеля.
Shutdown (void)
Завершите работу туннельного агента.
StartServiceTunnel (void)
Запустите сервисный туннель.
StartServiceTunnel (uint64_t dstNodeId, IPAddress dstIPAddr, WeaveAuthMode authMode)
Запустите сервисный туннель.
StopServiceTunnel (void)
void
Закройте туннельное соединение со службой.
StopServiceTunnel ( WEAVE_ERROR err)
void
Закройте туннельное соединение со службой.

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

RecvdFromShortcutUDPTunnel ( WeaveMessageLayer *msgLayer, PacketBuffer *message)
void
Обработчик для получения туннелированных пакетов IPv6 через сокращенный туннель UDP между пограничным шлюзом и мобильным устройством и пересылки на интерфейс конечной точки туннеля после декапсуляции необработанного пакета IPv6 из заголовка туннеля.
RecvdFromTunnelEndPoint ( TunEndPoint *tunEP, PacketBuffer *message)
void
Обработчик для получения пакетов IPv6 из интерфейса EndPoint туннеля и их пересылки либо в Службу через TCP-соединение службы после инкапсуляции пакета IPv6 внутри заголовка туннеля, либо в мобильный клиент через сокращенный туннель.

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

Состояние агента

 AgentState

Состояния Туннельного агента в отношении его подключения к Сервису.

Характеристики
kState_BkupOnlyTunModeEstablished

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

kState_Initialized_NoTunnel

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

kState_NotInitialized

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

kState_PrimaryAndBkupTunModeEstablished

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

kState_PrimaryTunModeEstablished

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

Состояние агента

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

Состояния Туннельного агента в отношении его подключения к Сервису.

Онсервистуннелреконнектнотифифункт

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

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

Подробности
Параметры
[in] tunType
Тип туннеля: основной или резервный.
[in] reconnectHost
Имя хоста, предоставленное Службой для повторного подключения.
[in] reconnectPort
Порт назначения, предоставленный Службой для повторного подключения.
[in] appCtxt
Указатель на объект контекста приложения

Онсервицетуннелстатуснотифифункт

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

Указатель функции на обработчик, установленный более высоким уровнем для воздействия на различные уведомления, связанные с туннелем к Сервису.

Подробности
Параметры
[in] reason
Причина уведомления о статусе приложения.
[in] err
Обнаружена ошибка Weave, если таковая имеется
[in] appCtxt
Указатель на объект контекста приложения

ПлатформаСетьОнлайнПроверить

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

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

Подробности
Параметры
[in] tunType
Тип туннеля: основной или резервный.
[in] appCtxt
Указатель на объект контекста приложения

ТкатьТуннельФлаги

 WeaveTunnelFlags

Биты флага Weave Tunnel.

Характеристики
kTunnelFlag_BackupEnabled

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

kTunnelFlag_BackupRestricted

Устанавливается, если маршрутизация резервного туннеля ограничена.

kTunnelFlag_PrimaryEnabled

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

kTunnelFlag_PrimaryRestricted

Установите, если маршрутизация основного туннеля ограничена.

ТкатьТуннельФлаги

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

Биты флага Weave Tunnel.

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

СетьОнлайнПроверка

PlatformNetworkOnlineCheck NetworkOnlineCheck

Онсервицетунреконнектутифи

OnServiceTunnelReconnectNotifyFunct OnServiceTunReconnectNotify

Онсервицетунстатуснотифи

OnServiceTunnelStatusNotifyFunct OnServiceTunStatusNotify

Указатель функции на обработчик, установленный более высоким уровнем для воздействия на различные уведомления, связанные с туннелем к Сервису.

мсервицемгр

WeaveServiceManager * mServiceMgr

Указатель Service Manager, используемый для поиска и подключения к службе.

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

Отключить первичный туннель

void DisablePrimaryTunnel(
  void
)

Отключить основной туннель.

Отключите основной туннель.

Включить первичный туннель

void EnablePrimaryTunnel(
  void
)

Включить основной туннель.

Включите основной туннель.

GetAgentStateName

const char * GetAgentStateName(
  const AgentState state
)

Получите имя WeaveTunnelAgentState.

GetTimeMsec

uint64_t GetTimeMsec(
  void
)

Получите системное время в миллисекундах.

Получите системное время или монотонное время в миллисекундах, если системное время недоступно.

GetWeaveTunnelAgentState

AgentState GetWeaveTunnelAgentState(
  void
)

Получите состояние TunnelAgent.

Подробности
Возврат
AgentState — текущее состояние WeaveTunnelAgent .

В этом

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

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

Это создает объект конечной точки Tunnel, настраивает интерфейс туннеля, инициализирует переменные-члены, обратные вызовы и WeaveTunnelControl .

В этом

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

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

Это создает объект конечной точки Tunnel, настраивает интерфейс туннеля, инициализирует переменные-члены, обратные вызовы и WeaveTunnelControl .

IsPrimaryTunnelEnabled

bool IsPrimaryTunnelEnabled(
  void
) const 

Проверьте, включен ли основной туннель.

Подробности
Возврат
true, если он включен, иначе false.

IsPrimaryTunnelRoutingRestricted

bool IsPrimaryTunnelRoutingRestricted(
  void
)

Проверьте, распространяется ли служба на ограничения маршрутизации на основной туннель.

Проверьте, распространяется ли на основной туннель ограничения маршрутизации.

Подробности
Возврат
true, если основной туннель установлен, но на него распространяются ограничения маршрутизации со стороны службы.

IsTunnelRoutingRestricted

bool IsTunnelRoutingRestricted(
  void
)

Проверьте, не распространяется ли на туннель ограничения маршрутизации со стороны службы.

Проверьте, распространяется ли на туннель ограничения маршрутизации.

Подробности
Возврат
true, если установлен основной или резервный туннель, и на оба из них накладываются ограничения маршрутизации со стороны службы.

СетьОнлайнЧекРезультат

void NetworkOnlineCheckResult(
  TunnelType tunType,
  bool isOnline
)

Обратный вызов, вызываемый платформой, когда доступен результат онлайн-проверки сети.

Подробности
Параметры
[in] tunType
Тип туннеля, соответствующий интерфейсу, по которому выполняется проверка сетевого подключения.
[in] isOnline
True, если сеть онлайн, в противном случае — false.

ResetPrimaryReconnectBackoff

WEAVE_ERROR ResetPrimaryReconnectBackoff(
  bool reconnectImmediately
)

Сбросьте время повторного подключения для основного туннеля.

Подробности
Параметры
[in] reconnectImmediately
True, если требуется немедленное повторное подключение, в противном случае используется настроенный тайм-аут повторного подключения.

SetAuthMode

void SetAuthMode(
  const WeaveAuthMode authMode
)

Установите WeaveAuthMode для туннеля.

Подробности
Параметры
[in] authMode
Режим аутентификации Weave, используемый с одноранговым устройством.

УстановитьDestination

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

Установите идентификатор узла назначения, IP-адрес и порт для туннеля.

Установите идентификатор узла назначения и IP-адрес для туннеля.

Подробности
Параметры
[in] nodeId
Идентификатор узла назначения.
[in] ipAddr
IP-адрес узла назначения.
[in] servicePort
Порт узла назначения.

SetTunnelingDeviceRole

void SetTunnelingDeviceRole(
  const Role role
)

Установите роль туннельного устройства (BorderGateway, StandaloneDevice, MobileDevice) для туннеля.

Установите роль туннельного устройства (BorderGateway или Standalone) для туннеля.

Подробности
Параметры
[in] role
Роль, которую берет на себя туннельный агент; Пограничный шлюз, автономное или мобильное устройство.

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

WEAVE_ERROR Shutdown(
  void
)

Завершите работу туннельного агента.

Это разрывает соединение со службой и закрывает интерфейс TunEndPoint после удаления адресов и маршрутов, связанных с туннельным интерфейсом.

Это разрывает соединение со службой и закрывает интерфейс TunEndPoint после удаления адресов и маршрутов, связанных с туннельным интерфейсом.

Подробности
Возврат
WEAVE_NO_ERROR в случае успеха, в противном случае соответствующий тип WEAVE_ERROR.

Стартсервистуннель

WEAVE_ERROR StartServiceTunnel(
  void
)

Запустите сервисный туннель.

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

Это пытается установить соединение со Службой, а также устанавливает маршрут структуры к туннельному интерфейсу.

Подробности
Возврат
WEAVE_NO_ERROR в случае успеха, в противном случае соответствующий тип WEAVE_ERROR.

Стартсервистуннель

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

Запустите сервисный туннель.

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

Стопсервистуннель

void StopServiceTunnel(
  void
)

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

Стопсервистуннель

void StopServiceTunnel(
  WEAVE_ERROR err
)

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

Подробности
Параметры
[in] err
WEAVE_NO_ERROR, если для этого запроса StopServiceTunnel нет конкретной причины, в противном случае причина ошибки будет передана.

Агент WeaveTunnel

 WeaveTunnelAgent(
  void
)

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

RecvdFromShortcutUDPTunnel

void RecvdFromShortcutUDPTunnel(
  WeaveMessageLayer *msgLayer,
  PacketBuffer *message
)

Обработчик для получения туннелированных пакетов IPv6 через сокращенный туннель UDP между пограничным шлюзом и мобильным устройством и пересылки на интерфейс конечной точки туннеля после декапсуляции необработанного пакета IPv6 из заголовка туннеля.

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

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

RecvdFromTunnelEndPoint

void RecvdFromTunnelEndPoint(
  TunEndPoint *tunEP,
  PacketBuffer *message
)

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

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

Если соединение со службой еще не установлено, сообщение помещается в очередь до тех пор, пока соединение не будет установлено. Для туннелирования к мобильному клиентскому устройству используется ссылка на таблицу соседей следующего перехода.

Если соединение со службой еще не установлено, сообщение помещается в очередь до тех пор, пока соединение не будет установлено. Для туннелирования к мобильному клиентскому устройству используется ссылка на таблицу соседей следующего перехода.

Подробности
Параметры
[in] tunEP
Указатель на объект TunEndPoint.
[in] message
Указатель на объект PacketBuffer, содержащий необработанный пакет IPv6.