nl::Weave::Profiles::WeaveTunnel::WeaveTunnelAgent

Resumo

Construtores e destruidores

WeaveTunnelAgent(void)

Tipos públicos

AgentState{
  kState_NotInitialized = 0,
  kState_Initialized_NoTunnel = 1,
  kState_PrimaryTunModeEstablished = 2,
  kState_BkupOnlyTunModeEstablished = 3,
  kState_PrimaryAndBkupTunModeEstablished = 4
}
enum
Estados do agente de túnel em relação às conexões com o Serviço.
AgentState typedef
Estados do agente de túnel em relação às conexões com o Serviço.
OnServiceTunnelReconnectNotifyFunct)(TunnelType tunType, const char *reconnectHost, const uint16_t reconnectPort, void *appCtxt) typedef
void(*
Ponteiro de função para o gerenciador definido por uma camada superior quando uma reconexão de túnel é recebida do serviço.
OnServiceTunnelStatusNotifyFunct)(WeaveTunnelConnectionMgr::TunnelConnNotifyReasons reason, WEAVE_ERROR err, void *appCtxt) typedef
void(*
Ponteiro de função para o gerenciador definido por uma camada superior para agir sobre várias notificações relacionadas ao túnel para o serviço.
PlatformNetworkOnlineCheck)(TunnelType tunType, void *appCtxt) typedef
void(*
Ponteiro de função para um gerenciador fornecido pelo aplicativo para executar uma verificação on-line no nível da rede.
WeaveTunnelFlags{
  kTunnelFlag_PrimaryEnabled = 0x01,
  kTunnelFlag_BackupEnabled = 0x02,
  kTunnelFlag_PrimaryRestricted = 0x04,
  kTunnelFlag_BackupRestricted = 0x08
}
enum
Bits de sinalização do túnel do Weave.
WeaveTunnelFlags typedef
Bits de sinalização do túnel do Weave.

Atributos públicos

NetworkOnlineCheck
OnServiceTunReconnectNotify
OnServiceTunStatusNotify
Ponteiro de função para o gerenciador definido por uma camada superior para agir sobre várias notificações relacionadas ao túnel para o serviço.
mServiceMgr
WeaveServiceManager *
Ponteiro do gerenciador de serviços a ser usado para pesquisar e se conectar ao serviço.

Funções públicas

DisablePrimaryTunnel(void)
void
Desativar túnel principal.
EnablePrimaryTunnel(void)
void
Ativar túnel primário.
GetAgentStateName(const AgentState state)
const char *
Extrai o nome WeaveTunnelAgentState.
GetTimeMsec(void)
uint64_t
Acessa a hora do sistema em milissegundos.
GetWeaveTunnelAgentState(void)
Acessa o estado do TunnelAgent.
Init(InetLayer *inet, WeaveExchangeManager *exchMgr, uint64_t dstNodeId, WeaveAuthMode authMode, WeaveServiceManager *svcMgr, const char *intfName, uint8_t role, void *appContext)
Inicialize o agente Tunnel.
Init(InetLayer *inet, WeaveExchangeManager *exchMgr, uint64_t dstNodeId, IPAddress dstIPAddr, WeaveAuthMode authMode, const char *intfName, uint8_t role, void *appContext)
Inicialize o agente Tunnel.
IsPrimaryTunnelEnabled(void) const
bool
Verifique se o túnel principal está ativado.
IsPrimaryTunnelRoutingRestricted(void)
bool
Verifique se o túnel principal está sujeito às restrições de roteamento do serviço.
IsTunnelRoutingRestricted(void)
bool
Verifique se o túnel está sujeito às restrições de roteamento do serviço.
NetworkOnlineCheckResult(TunnelType tunType, bool isOnline)
void
Chamada de retorno invocada pela plataforma quando o resultado do verificador on-line de rede está disponível.
ResetPrimaryReconnectBackoff(bool reconnectImmediately)
Redefina o tempo de reconexão do túnel principal.
SetAuthMode(const WeaveAuthMode authMode)
void
Defina o WeaveAuthMode para o túnel.
SetDestination(const uint64_t nodeId, const IPAddress ipAddr, const uint16_t servicePort)
void
Defina o nodeId, o IPAddress e a porta de destino do túnel.
SetTunnelingDeviceRole(const Role role)
void
Defina o papel do dispositivo de encapsulamento(BorderGateway, StandaloneDevice, MobileDevice) para o túnel.
Shutdown(void)
Encerre o agente do Tunnel.
StartServiceTunnel(void)
Inicie o túnel de serviço.
StartServiceTunnel(uint64_t dstNodeId, IPAddress dstIPAddr, WeaveAuthMode authMode)
Inicie o túnel de serviço.
StopServiceTunnel(void)
void
Feche a conexão do túnel com o serviço.
StopServiceTunnel(WEAVE_ERROR err)
void
Feche a conexão do túnel com o serviço.

Funções estáticas públicas

RecvdFromShortcutUDPTunnel(WeaveMessageLayer *msgLayer, PacketBuffer *message)
void
Gerenciador para receber pacotes IPv6 encapsulados pelo túnel UDP de atalho entre o gateway de borda e o dispositivo móvel e encaminhar para a interface Tunnel EndPoint após descapular o pacote IPv6 bruto de dentro do cabeçalho do túnel.
RecvdFromTunnelEndPoint(TunEndPoint *tunEP, PacketBuffer *message)
void
Gerenciador para receber pacotes IPv6 da interface do Tunnel EndPoint e encaminhar para o serviço pela conexão TCP do serviço após o encapsulamento do pacote IPv6 dentro do cabeçalho do túnel ou para o cliente móvel em um túnel de atalho.

Tipos públicos

AgentState

 AgentState

Estados do agente de túnel em relação às conexões com o Serviço.

Propriedades
kState_BkupOnlyTunModeEstablished

Usado para indicar que o túnel de backup para o Serviço foi estabelecido.

kState_Initialized_NoTunnel

Usado para indicar que o agente de túnel foi inicializado, mas nenhum túnel foi estabelecido.

kState_NotInitialized

Usado para indicar que o agente de túnel não está inicializado.

kState_PrimaryAndBkupTunModeEstablished

Usado para indicar que os túneis principal e de backup foram estabelecidos.

kState_PrimaryTunModeEstablished

Usado para indicar que o túnel principal para o serviço foi estabelecido.

AgentState

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

Estados do agente de túnel em relação às conexões com o Serviço.

OnServiceTunnelReconnectNotifyFunct

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

Ponteiro de função para o gerenciador definido por uma camada superior quando uma reconexão de túnel é recebida do serviço.

Detalhes
Parâmetros
[in] tunType
O tipo de túnel, principal ou backup.
[in] reconnectHost
O nome do host fornecido pelo serviço ao qual se reconectar.
[in] reconnectPort
A porta de destino fornecida pelo serviço à qual se reconectar.
[in] appCtxt
Um ponteiro para um objeto de contexto do aplicativo

OnServiceTunnelStatusNotifyFunct

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

Ponteiro de função para o gerenciador definido por uma camada superior para agir sobre várias notificações relacionadas ao túnel para o serviço.

Detalhes
Parâmetros
[in] reason
O motivo da notificação de status para o aplicativo.
[in] err
Erro no Weave encontrado, se houver
[in] appCtxt
Um ponteiro para um objeto de contexto do aplicativo

PlatformNetworkOnlineCheck

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

Ponteiro de função para um gerenciador fornecido pelo aplicativo para executar uma verificação on-line no nível da rede.

Detalhes
Parâmetros
[in] tunType
O tipo de túnel, principal ou backup.
[in] appCtxt
Um ponteiro para um objeto de contexto do aplicativo

WeaveTunnelFlags

 WeaveTunnelFlags

Bits de sinalização do túnel do Weave.

Propriedades
kTunnelFlag_BackupEnabled

Defina quando o túnel de backup é ativado.

kTunnelFlag_BackupRestricted

Definido quando o túnel de backup tem roteamento restrito.

kTunnelFlag_PrimaryEnabled

Definido quando o túnel principal é ativado.

kTunnelFlag_PrimaryRestricted

Definido quando o túnel primário está com roteamento restrito.

WeaveTunnelFlags

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

Bits de sinalização do túnel do Weave.

Atributos públicos

NetworkOnlineCheck

PlatformNetworkOnlineCheck NetworkOnlineCheck

OnServiceTunReconnectNotify

OnServiceTunnelReconnectNotifyFunct OnServiceTunReconnectNotify

OnServiceTunStatusNotify

OnServiceTunnelStatusNotifyFunct OnServiceTunStatusNotify

Ponteiro de função para o gerenciador definido por uma camada superior para agir sobre várias notificações relacionadas ao túnel para o serviço.

mServiceMgr

WeaveServiceManager * mServiceMgr

Ponteiro do gerenciador de serviços a ser usado para pesquisar e se conectar ao serviço.

Funções públicas

DisablePrimaryTunnel

void DisablePrimaryTunnel(
  void
)

Desativar túnel principal.

Desative o túnel primário.

EnablePrimaryTunnel

void EnablePrimaryTunnel(
  void
)

Ativar túnel primário.

Ative o túnel primário.

GetAgentStateName

const char * GetAgentStateName(
  const AgentState state
)

Extrai o nome WeaveTunnelAgentState.

GetTimeMsec

uint64_t GetTimeMsec(
  void
)

Acessa a hora do sistema em milissegundos.

Recebe a hora do sistema ou o horário monotônico em milissegundos se a hora do sistema não estiver disponível.

.

GetWeaveTunnelAgentState

AgentState GetWeaveTunnelAgentState(
  void
)

Acessa o estado do TunnelAgent.

Detalhes
Retornos
AgentState é o estado atual do WeaveTunnelAgent.

Init

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

Inicialize o agente Tunnel.

Isso cria o objeto de endpoint do túnel, configura a interface do túnel, inicializa as variáveis de membro, os callbacks e o WeaveTunnelControl.

Init

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

Inicialize o agente Tunnel.

Isso cria o objeto de endpoint do túnel, configura a interface do túnel, inicializa as variáveis de membro, os callbacks e o WeaveTunnelControl.

IsPrimaryTunnelEnabled

bool IsPrimaryTunnelEnabled(
  void
) const 

Verifique se o túnel principal está ativado.

Detalhes
Retornos
"true" se estiver ativado. Caso contrário, "false".

IsPrimaryTunnelRoutingRestricted

bool IsPrimaryTunnelRoutingRestricted(
  void
)

Verifique se o túnel principal está sujeito às restrições de roteamento do serviço.

Verifique se o túnel principal está sujeito a restrições de roteamento.

Detalhes
Retornos
verdadeiro se o túnel principal estiver estabelecido, mas sujeito a restrições de roteamento do serviço.

IsTunnelRoutingRestricted

bool IsTunnelRoutingRestricted(
  void
)

Verifique se o túnel está sujeito às restrições de roteamento do serviço.

Verifique se o túnel está sujeito a restrições de roteamento.

Detalhes
Retornos
verdadeiro se o túnel primário ou de backup estiverem estabelecidos e estiverem sujeitos a restrições de roteamento pelo serviço.

NetworkOnlineCheckResult

void NetworkOnlineCheckResult(
  TunnelType tunType,
  bool isOnline
)

Chamada de retorno invocada pela plataforma quando o resultado do verificador on-line de rede está disponível.

Detalhes
Parâmetros
[in] tunType
O tipo de túnel correspondente à interface em que a verificação de conectividade de rede é realizada.
[in] isOnline
Verdadeiro se a rede estiver on-line. Caso contrário, será falso.

ResetPrimaryReconnectBackoff

WEAVE_ERROR ResetPrimaryReconnectBackoff(
  bool reconnectImmediately
)

Redefina o tempo de reconexão do túnel principal.

Detalhes
Parâmetros
[in] reconnectImmediately
Verdadeiro se necessário para se reconectar imediatamente. Caso contrário, ele usa o tempo limite aproximado configurado.

SetAuthMode

void SetAuthMode(
  const WeaveAuthMode authMode
)

Defina o WeaveAuthMode para o túnel.

Detalhes
Parâmetros
[in] authMode
Modo de autenticação do Weave usado com peering.

SetDestination

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

Defina o nodeId, o IPAddress e a porta de destino do túnel.

Defina o nodeId e o IPAddress de destino do túnel.

Detalhes
Parâmetros
[in] nodeId
ID do nó de destino.
[in] ipAddr
Endereço IP do nó de destino.
[in] servicePort
Porta do nó de destino.

SetTunnelingDeviceRole

void SetTunnelingDeviceRole(
  const Role role
)

Defina o papel do dispositivo de encapsulamento(BorderGateway, StandaloneDevice, MobileDevice) para o túnel.

Defina o papel do dispositivo de encapsulamento(BorderGateway vs. Independente) para o túnel.

Detalhes
Parâmetros
[in] role
Papel assumido pelo Tunnel Agent. Gateway de borda, dispositivo independente ou dispositivo móvel.

Encerramento

WEAVE_ERROR Shutdown(
  void
)

Encerre o agente do Tunnel.

Isso interrompe a conexão com o serviço e fecha a interface do TunEndPoint depois de remover os endereços e as rotas associados à interface do túnel.

Isso interrompe a conexão com o serviço e fecha a interface do TunEndPoint depois de remover os endereços e as rotas associados à interface do túnel.

Detalhes
Retornos
WEAVE_NO_ERROR em caso de sucesso, caso contrário, um tipo de WEAVE_ERROR correspondente.

StartServiceTunnel

WEAVE_ERROR StartServiceTunnel(
  void
)

Inicie o túnel de serviço.

Isso ativa o túnel e tenta estabelecer uma conexão com o serviço.

Ele tenta estabelecer uma conexão com o serviço e também define a rota da malha para a interface do túnel.

Detalhes
Retornos
WEAVE_NO_ERROR em caso de sucesso, caso contrário, um tipo de WEAVE_ERROR correspondente.

StartServiceTunnel

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

Inicie o túnel de serviço.

Isso ativa o túnel e tenta estabelecer uma conexão com o serviço.

StopServiceTunnel

void StopServiceTunnel(
  void
)

Feche a conexão do túnel com o serviço.

StopServiceTunnel

void StopServiceTunnel(
  WEAVE_ERROR err
)

Feche a conexão do túnel com o serviço.

Detalhes
Parâmetros
[in] err
WEAVE_NO_ERROR se não houver um motivo específico para essa solicitação StopServiceTunnel. Caso contrário, a causa do erro será transmitida.

WeaveTunnelAgent

 WeaveTunnelAgent(
  void
)

Funções estáticas públicas

RecvdFromShortcutUDPTunnel

void RecvdFromShortcutUDPTunnel(
  WeaveMessageLayer *msgLayer,
  PacketBuffer *message
)

Gerenciador para receber pacotes IPv6 encapsulados pelo túnel UDP de atalho entre o gateway de borda e o dispositivo móvel e encaminhar para a interface Tunnel EndPoint após descapular o pacote IPv6 bruto de dentro do cabeçalho do túnel.

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.

RecvdFromTunnelEndPoint

void RecvdFromTunnelEndPoint(
  TunEndPoint *tunEP,
  PacketBuffer *message
)

Gerenciador para receber pacotes IPv6 da interface do Tunnel EndPoint e encaminhar para o serviço pela conexão TCP do serviço após o encapsulamento do pacote IPv6 dentro do cabeçalho do túnel ou para o cliente móvel em um túnel de atalho.

Gerenciador para receber pacotes IPv6 da interface do Tunnel EndPoint e encaminhar para o serviço pela conexão TCP do serviço após o encapsulamento do pacote IPv6 dentro do cabeçalho do túnel ou para o cliente móvel em um túnel local.

Se a conexão de serviço ainda não estiver ativa, a mensagem vai ficar na fila até que a conexão seja configurada. Para tunelamento para o dispositivo cliente móvel, a tabela vizinha do próximo salto é referenciada.

Se a conexão de serviço ainda não estiver ativa, a mensagem vai ficar na fila até que a conexão seja configurada. Para tunelamento para o dispositivo cliente móvel, a tabela vizinha do próximo salto é referenciada.

Detalhes
Parâmetros
[in] tunEP
Um ponteiro para o objeto TunEndPoint.
[in] message
Um ponteiro para o objeto PackageBuffer que contém o pacote IPv6 bruto.