nl:: Weave:: Profiles:: WeaveTunnel:: WeaveTunnelConnectionMgr
#include <src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.h>
Essa classe encapsula todos os estados de conexão do túnel 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 pela qual existiria o túnel do Weave para o serviço.
Construtores e destrutores |
|
---|---|
WeaveTunnelConnectionMgr(void)
|
Tipos públicos |
|
---|---|
ConnectPolicyCallback)(void *const appState, ReconnectParam &reconnectParam, uint32_t &delayMsec)
|
typedefvoid(*
Callback para buscar o intervalo de tempo de espera antes que o próximo túnel seja reconectado. |
TunnelConnNotifyReasons{
|
enum |
TunnelConnNotifyReasons
|
typedef |
TunnelConnectionState{
|
enum |
TunnelConnectionState
|
typedef |
Atributos públicos |
|
---|---|
mServiceConnDelayPolicyCallback
|
Funções públicas |
|
---|---|
Init(WeaveTunnelAgent *tunAgent, TunnelType tunType, SrcInterfaceType srcIntfType, const char *connIntfName)
|
Inicialize o WeaveTunnelConnectionMgr.
|
ServiceTunnelClose(WEAVE_ERROR err)
|
void
Feche o túnel de serviço.
|
SetInterfaceName(const char *intfName)
|
void
Define InterfaceName para conexão de túnel.
|
SetInterfaceType(const SrcInterfaceType srcIntfType)
|
void
SrcInterfaceType foi definida para conexão de túnel.
|
Shutdown(void)
|
void
Encerre o WeaveTunnelConnectionMgr.
|
StopAndReconnectTunnelConn(ReconnectParam & reconnParam)
|
void
Interrompa a conexão do túnel de serviço e tente se reconectar novamente.
|
TryConnectingNow(void)
|
Tentar 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 de política padrão para buscar a próxima vez de se conectar ao serviço.
|
HandleServiceConnectionClosed(WeaveConnection *con, WEAVE_ERROR conErr)
|
void
Manipulador invocado quando a conexão TCP do serviço é encerrada.
|
HandleServiceConnectionComplete(WeaveConnection *con, WEAVE_ERROR conErr)
|
void
Manipulador 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 do serviço e encaminhar para a interface Tunnel EndPoint após descapsular o pacote IPv6 bruto de dentro do cabeçalho do túnel.
|
ServiceMgrStatusHandler(void *appState, WEAVE_ERROR err, StatusReport *report)
|
void
Manipulador invocado se o Service Manager falhar ao 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 que o próximo túnel seja reconectado.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
TunnelConnNotifyReasons
TunnelConnNotifyReasons
Propriedades | |
---|---|
kStatus_TunBackupConnError
|
Usado para indicar que uma tentativa de conexão de túnel de backup falhou ou que uma existente foi cancelada ou encerrada localmente pelo peering. |
kStatus_TunBackupLiveness
|
Usado para indicar informações sobre a sondagem de atividade do túnel no túnel de 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 Weave foi desativado. |
kStatus_TunFailoverToBackup
|
Usado para indicar que o túnel principal está inativo e a alternância para o túnel de backup ocorreu. |
kStatus_TunPrimaryAndBackupUp
|
Usado para indicar que o túnel principal e o de backup Weave estão ativos. |
kStatus_TunPrimaryConnError
|
Usado para indicar que uma tentativa de conexão de túnel principal falhou ou que uma existente foi cancelada ou encerrada localmente pelo peering. |
kStatus_TunPrimaryLiveness
|
Usado para indicar informações sobre a sondagem de atividade do túnel no túnel principal do Weave. |
kStatus_TunPrimaryReconnectRcvd
|
Usado para indicar que o serviço solicitou uma reconexão para o túnel principal do Weave. |
kStatus_TunPrimaryUp
|
Usado para indicar que o túnel principal 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 que as informações de trajeto 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 no 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 |
|
SetInterfaceName
void SetInterfaceName( const char *intfName )
Define InterfaceName para conexão de túnel.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
SetInterfaceType
void SetInterfaceType( const SrcInterfaceType srcIntfType )
SrcInterfaceType foi definida para conexão de túnel.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
StopAndReconnectTunnelConn
void StopAndReconnectTunnelConn( ReconnectParam & reconnParam )
Interrompa a conexão do túnel de serviço e tente se reconectar novamente.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
TryConnectingNow
WEAVE_ERROR TryConnectingNow( void )
Tentar 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 de política padrão para buscar a próxima vez de se conectar ao serviço.
Esta política escolhe um horário aleatório (com resolução em milissegundos) em uma janela crescente, seguindo uma sequência de fibonacci até WEAVE_CONFIG_LIMITING_RECONNECT_MAX_FIBONACCI_INDEX.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
HandleServiceConnectionClosed
void HandleServiceConnectionClosed( WeaveConnection *con, WEAVE_ERROR conErr )
Manipulador invocado quando a conexão TCP do serviço é encerrada.
O dispositivo tentará restabelecer a conexão com o serviço se o mServiceConKeepAlive estiver definido como verdadeiro.
Em seguida, o dispositivo tenta restabelecer a conexão com o serviço.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
HandleServiceConnectionComplete
void HandleServiceConnectionComplete( WeaveConnection *con, WEAVE_ERROR conErr )
Manipulador 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 a partir dessa função.
O dispositivo continua a iniciar comandos de controle de túnel para o serviço a partir dessa função.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
RecvdFromService
void RecvdFromService( WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *message )
Gerenciador para receber pacotes IPv6 encapsulados da conexão TCP do serviço e encaminhar para a interface Tunnel EndPoint após descapsular o pacote IPv6 bruto de dentro do cabeçalho do túnel.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
ServiceMgrStatusHandler
void ServiceMgrStatusHandler( void *appState, WEAVE_ERROR err, StatusReport *report )
Manipulador invocado se o Service Manager falhar ao estabelecer a conexão TCP com o serviço.