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)
|
typedefvoid(*
Callback para buscar o intervalo de tempo de espera antes da próxima reconexão do túnel. |
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
Defina InterfaceName para conexão de túnel.
|
SetInterfaceType(const SrcInterfaceType srcIntfType)
|
void
Defina SrcInterfaceType 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.
|
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 |
|
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 |
|
SetInterfaceName
void SetInterfaceName( const char *intfName )
Defina InterfaceName para conexão de túnel.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
SetInterfaceType
void SetInterfaceType( const SrcInterfaceType srcIntfType )
Defina SrcInterfaceType 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.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
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 |
|
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 |
|
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 |
|
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 |
|
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.