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

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

Esta classe encapsula todos os estados de conexão do túnel do Weave e a lógica e as funções de gerenciamento associadas.

Resumo

Uma instância dessa classe seria usada para gerenciar o túnel em cada interface por meio da qual o túnel do Weave para o serviço existiria.

Construtores e destruidores

WeaveTunnelConnectionMgr(void)

Tipos públicos

ConnectPolicyCallback)(void *const appState, ReconnectParam &reconnectParam, uint32_t &delayMsec) typedef
void(*
Callback para buscar o intervalo de tempo de espera antes da próxima reconexão do 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

Funções públicas

Init(WeaveTunnelAgent *tunAgent, TunnelType tunType, SrcInterfaceType srcIntfType, const char *connIntfName)
ServiceTunnelClose(WEAVE_ERROR err)
void
Feche o túnel de serviço.
SetInterfaceName(const char *intfName)
void
Defina InterfaceName para conexão de túnel.
SetInterfaceType(const SrcInterfaceType srcIntfType)
void
Defina SrcInterfaceType para conexão de túnel.
Shutdown(void)
void
StopAndReconnectTunnelConn(ReconnectParam & reconnParam)
void
Interrompa a conexão do túnel de serviço e tente se reconectar.
TryConnectingNow(void)
Tente estabelecer uma conexão com o serviço.

Funções estáticas públicas

DefaultReconnectPolicyCallback(void *const appstate, ReconnectParam & reconnectParam, uint32_t & delayMsec)
void
A implementação da política padrão para buscar a próxima vez para se conectar ao serviço.
HandleServiceConnectionClosed(WeaveConnection *con, WEAVE_ERROR conErr)
void
Gerenciador invocado quando a conexão TCP do serviço é encerrada.
HandleServiceConnectionComplete(WeaveConnection *con, WEAVE_ERROR conErr)
void
Gerenciador invocado quando a conexão TCP do serviço é concluída.
RecvdFromService(WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *message)
void
Gerenciador para receber pacotes IPv6 encapsulados da conexão TCP de serviço e encaminhá-los para a interface Tunnel EndPoint após descapular o pacote IPv6 bruto de dentro do cabeçalho do túnel.
ServiceMgrStatusHandler(void *appState, WEAVE_ERROR err, StatusReport *report)
void
Gerenciador invocado se o gerenciador de serviços não conseguiu estabelecer a conexão TCP com o serviço.

Tipos públicos

ConnectPolicyCallback

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

Callback para buscar o intervalo de tempo de espera antes da próxima reconexão do túnel.

Detalhes
Parâmetros
[in] appState
Ponteiro de estado do app definido durante a inicialização do SubscriptionClient.
[in] reconnectParam
Estrutura com parâmetros que influenciam o cálculo do atraso de reconexão.
[out] delayMsec
Tempo, em milissegundos, de espera antes da próxima tentativa de reconexão.

TunnelConnNotifyReasons

 TunnelConnNotifyReasons
Propriedades
kStatus_TunBackupConnError

Usado para indicar que uma tentativa de conexão do túnel de backup falhou ou que uma existente foi cancelada ou fechada localmente pelo peering.

kStatus_TunBackupLiveness

Usado para indicar informações sobre a sondagem de atividade do túnel no túnel Backup Weave.

kStatus_TunBackupOnlyDown

Usado para indicar que o túnel de backup está inativo.

kStatus_TunBackupReconnectRcvd

Usado para indicar que o serviço solicitou uma reconexão para o túnel do Backup Weave.

kStatus_TunBackupUp

Usado para indicar que o túnel do Backup Weave está ativo.

kStatus_TunDown

Usado para indicar que o túnel do Weave foi desativado.

kStatus_TunFailoverToBackup

Usado para indicar que o túnel primário está inativo e que a alternância para o túnel de backup ocorreu.

kStatus_TunPrimaryAndBackupUp

Usado para indicar que os túneis primário e de backup do Weave estão ativos.

kStatus_TunPrimaryConnError

Usado para indicar que uma tentativa de conexão do túnel principal falhou ou que uma existente foi cancelada ou fechada localmente pelo peering.

kStatus_TunPrimaryLiveness

Usado para indicar informações sobre a sondagem de atividade do túnel no túnel do Weave primário.

kStatus_TunPrimaryReconnectRcvd

Usado para indicar que o serviço solicitou uma reconexão para o túnel do Weave principal.

kStatus_TunPrimaryUp

Usado para indicar que o túnel primário do Weave está ativo.

TunnelConnNotifyReasons

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

TunnelConnectionState

 TunnelConnectionState
Propriedades
kState_Connecting

Usado para indicar que a conexão do Weave Tunnel foi iniciada.

kState_ConnectionEstablished

Usado para indicar que a conexão do Weave Tunnel foi estabelecida e as informações de rota estão sendo trocadas.

kState_NotConnected

Usado para indicar que o Weave Tunnel não está conectado.

kState_ReconnectRecvd

Usado para indicar que o serviço quer que o gateway de borda se reconecte após uma pesquisa de diretório.

kState_TunnelClosing

Usado para indicar que o Weave Tunnel está sendo fechado e a conexão está sendo eliminada.

kState_TunnelOpen

Usado para indicar que o Weave Tunnel está aberto e pronto para o trânsito de tráfego de dados.

TunnelConnectionState

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

Atributos públicos

mServiceConnDelayPolicyCallback

ConnectPolicyCallback mServiceConnDelayPolicyCallback

Funções públicas

Init

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

Inicialize o WeaveTunnelConnectionMgr.

ServiceTunnelClose

void ServiceTunnelClose(
  WEAVE_ERROR err
)

Feche o túnel de serviço.

Detalhes
Parâmetros
[in] err
Um WEAVE_ERROR transmitido do autor da chamada.

SetInterfaceName

void SetInterfaceName(
  const char *intfName
)

Defina InterfaceName para conexão de túnel.

Detalhes
Parâmetros
[in] tunIntf
O InterfaceName para configurar a conexão do túnel do serviço.

SetInterfaceType

void SetInterfaceType(
  const SrcInterfaceType srcIntfType
)

Defina SrcInterfaceType para conexão de túnel.

Detalhes
Parâmetros
[in] srcIntfType
O tipo de tecnologia de rede da interface para conexão de túnel de serviço.

Encerramento

void Shutdown(
  void
)

StopAndReconnectTunnelConn

void StopAndReconnectTunnelConn(
  ReconnectParam & reconnParam
)

Interrompa a conexão do túnel de serviço e tente se reconectar.

Detalhes
Parâmetros
[in] err
Um WEAVE_ERROR transmitido do autor da chamada.

TryConnectingNow

WEAVE_ERROR TryConnectingNow(
  void
)

Tente estabelecer uma conexão com o serviço.

Tente estabelecer uma conexão com o serviço usando o ServiceManager ou diretamente.

WeaveTunnelConnectionMgr

 WeaveTunnelConnectionMgr(
  void
)

Funções estáticas públicas

DefaultReconnectPolicyCallback

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

A implementação da política padrão para buscar a próxima vez para se conectar ao serviço.

Esta política escolhe um intervalo de tempo aleatório (com resolução em milissegundos) em uma janela crescente, seguindo uma sequência de fibonacci até WEAVE_CONFIG_TUNNELING_RECONNECT_MAX_FIBONACCI_INDEX.

Detalhes
Parâmetros
[in] appState
Ponteiro de estado do app definido durante a inicialização do SubscriptionClient.
[in] reconnectParam
Estrutura com parâmetros que influenciam o cálculo do atraso de reconexão.
[out] delayMsec
Tempo, em milissegundos, de espera antes da próxima tentativa de reconexão.

HandleServiceConnectionClosed

void HandleServiceConnectionClosed(
  WeaveConnection *con,
  WEAVE_ERROR conErr
)

Gerenciador invocado quando a conexão TCP do serviço é encerrada.

O dispositivo tentará restabelecer a conexão com o serviço se mServiceConKeepAlive estiver definido como verdadeiro.

Em seguida, o dispositivo tenta restabelecer a conexão com o Serviço.

Detalhes
Parâmetros
[in] con
Um ponteiro para o objeto WeaveConnection.
[in] conErr
Qualquer erro dentro de WeaveConnection ou WEAVE_NO_ERROR.

HandleServiceConnectionComplete

void HandleServiceConnectionComplete(
  WeaveConnection *con,
  WEAVE_ERROR conErr
)

Gerenciador invocado quando a conexão TCP do serviço é concluída.

O dispositivo continua a iniciar comandos de controle de túnel para o serviço dessa função.

O dispositivo continua a iniciar comandos de controle de túnel para o serviço dessa função.

Detalhes
Parâmetros
[in] con
Um ponteiro para o objeto WeaveConnection.
[in] conErr
Qualquer erro dentro de WeaveConnection ou WEAVE_NO_ERROR.

RecvdFromService

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

Gerenciador para receber pacotes IPv6 encapsulados da conexão TCP de serviço e encaminhá-los para a interface Tunnel EndPoint após descapular o pacote IPv6 bruto de dentro do cabeçalho do túnel.

Detalhes
Parâmetros
[in] con
Um ponteiro para o objeto WeaveConnection.
[in] msgInfo
Um ponteiro para o objeto WeaveMessageInfo.
[in] message
Um ponteiro para o objeto PackageBuffer que contém o pacote IPv6 encapsulado.

ServiceMgrStatusHandler

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

Gerenciador invocado se o gerenciador de serviços não conseguiu estabelecer a conexão TCP com o serviço.