nl::Weave::Binding::Configuration

#include <src/lib/core/WeaveBinding.h>

Fornece uma interface de estilo declarativo para configurar e preparar um objeto Binding.

Resumo

Ao configurar uma Vinculação, os aplicativos precisam chamar pelo menos um método de cada um dos seguintes grupos de configuração: destino, transporte e segurança. Outros métodos podem ser chamados, conforme necessário, para substituir o comportamento padrão.

Se configurações mutuamente exclusivas forem invocadas (por exemplo, Transport_TCP() seguido por Transport_UDP()), o último a ser chamado vence.

Funções públicas

ConfigureFromMessage(const WeaveMessageInfo *aMsgInfo, const Inet::IPPacketInfo *aPacketInfo)
Configure a vinculação para permitir a comunicação com o remetente de uma mensagem recebida.
DNS_Options(uint8_t dnsOptions)
Ao resolver o nome do host do peering, use as opções de DNS especificadas.
Exchange_ResponseTimeoutMsec(uint32_t aResponseTimeoutMsec)
Defina o tempo limite de resposta padrão para contextos de troca criados a partir desse objeto Binding.
GetError(void) const
Retorne qualquer erro que ocorreu ao configurar a Vinculação.
PrepareBinding(void)
Ser o processo de preparar a Vinculação para comunicação com o colega.
Security_AppGroupKey(uint32_t aAppGroupGlobalId, uint32_t aRootKeyId, bool aUseRotatingKey)
Ao se comunicar com o peer, envie e receba mensagens criptografadas para um grupo de aplicativos Weave especificado.
Security_AuthenticationMode(WeaveAuthMode aAuthMode)
Defina o modo de autenticação solicitado a ser usado para autenticar o peering.
Security_CASESession(void)
Ao se comunicar com o peering, envie e receba mensagens criptografadas usando uma chave de sessão CASE estabelecida com o nó de peering.
Security_EncryptionType(uint8_t aEncType)
Ao se comunicar com o app semelhante, envie e receba mensagens criptografadas com o tipo de criptografia de mensagens especificado.
Security_Key(uint32_t aKeyId)
Ao se comunicar com o peer, enviar e receber mensagens criptografadas usando uma chave especificada.
Security_None(void)
Ao se comunicar com o peer, envie e receba itens não criptografados (por exemplo,
Security_PASESession(uint8_t aPasswordSource)
Ao se comunicar com o peering, envie e receba mensagens criptografadas usando uma chave de sessão PASE estabelecida com o nó de peering.
Security_SharedCASESession(void)
Ao se comunicar com o app semelhante, envie e receba mensagens criptografadas usando uma chave de sessão CASE compartilhada estabelecida com o roteador Nest Core.
Security_SharedCASESession(uint64_t aRouterNodeId)
Ao se comunicar com o peering, envie e receba mensagens criptografadas usando uma chave de sessão CASE compartilhada estabelecida com um nó de roteador especificado.
Security_TAKESession()
Ao se comunicar com o peer, envie e receba mensagens criptografadas usando uma chave de sessão Take estabelecida com o nó do peer.
TargetAddress_IP(nl::Inet::IPAddress aPeerAddress, uint16_t aPeerPort, InterfaceId aInterfaceId)
Ao se comunicar com o peering, use o endereço IP, a porta e a interface de rede específicos.
TargetAddress_IP(const char *aHostName, uint16_t aPeerPort, InterfaceId aInterfaceId)
Ao se comunicar com o peering, use o nome do host, a porta e a interface de rede específicos.
TargetAddress_IP(const char *aHostName, size_t aHostNameLen, uint16_t aPeerPort, InterfaceId aInterfaceId)
Ao se comunicar com o peering, use o nome do host, a porta e a interface de rede específicos.
TargetAddress_WeaveFabric(uint16_t aSubnetId)
Ao se comunicar com o peering, use um endereço de malha do Weave derivado do ID do nó do peering e de uma sub-rede especificada.
TargetAddress_WeaveService(void)
Ao se comunicar com o peer, use um endereço de malha de serviço do Weave derivado do ID do nó do peering.
Target_NodeId(uint64_t aPeerNodeId)
Configure a vinculação para se comunicar com um ID de nó do Weave específico.
Target_ServiceEndpoint(uint64_t aPeerNodeId)
Configure a vinculação para se comunicar com um endpoint específico do serviço Weave.
Transport_DefaultWRMPConfig(const WRMPConfig & aWRMPConfig)
Defina a configuração WRMP padrão para contextos de troca criados a partir desse objeto Binding.
Transport_ExistingConnection(WeaveConnection *apConnection)
Use uma conexão Weave existente para se comunicar com o colega.
Transport_TCP(void)
Use o TCP para se comunicar com o peer.
Transport_UDP(void)
Use o UDP para se comunicar com o peer.
Transport_UDP_PathMTU(uint32_t aPathMTU)
Defina a MTU do caminho esperado para pacotes UDP que viajam para o peering.
Transport_UDP_WRM(void)
Use o protocolo de mensagens confiáveis do Weave ao se comunicar com o colega.

Funções públicas

ConfigureFromMessage

Configuration & ConfigureFromMessage(
  const WeaveMessageInfo *aMsgInfo,
  const Inet::IPPacketInfo *aPacketInfo
)

Configure a vinculação para permitir a comunicação com o remetente de uma mensagem recebida.

Detalhes
Parâmetros
[in] aMsgInfo
Estrutura de informações da mensagem associada à mensagem recebida.
[in] aPacketInfo
Informações do pacote da mensagem recebida.

DNS_Options

Configuration & DNS_Options(
  uint8_t dnsOptions
)

Ao resolver o nome do host do peering, use as opções de DNS especificadas.

Detalhes
Parâmetros
[in] dnsOptions
Um valor inteiro que controla como a resolução do nome do host é realizada. O valor deve ser um dos valores da enumeração #::nl::Inet::DNSOptions.
Retornos
Uma referência ao objeto de vinculação.

Exchange_ResponseTimeoutMsec

Configuration & Exchange_ResponseTimeoutMsec(
  uint32_t aResponseTimeoutMsec
)

Defina o tempo limite de resposta padrão para contextos de troca criados a partir desse objeto Binding.

Detalhes
Parâmetros
[in] aResponseTimeoutMsec
O tempo de resposta padrão, em ms.
Retornos
Uma referência ao objeto de vinculação.

GetError

WEAVE_ERROR GetError(
  void
) const 

Retorne qualquer erro que ocorreu ao configurar a Vinculação.

PrepareBinding

WEAVE_ERROR PrepareBinding(
  void
)

Ser o processo de preparar a Vinculação para comunicação com o colega.

Security_AppGroupKey

Configuration & Security_AppGroupKey(
  uint32_t aAppGroupGlobalId,
  uint32_t aRootKeyId,
  bool aUseRotatingKey
)

Ao se comunicar com o peer, envie e receba mensagens criptografadas para um grupo de aplicativos Weave especificado.

Detalhes
Parâmetros
[in] aAppGroupGlobalId
O ID global do grupo de aplicativos em que as mensagens precisam ser criptografadas.
[in] aRootKeyId
A chave raiz usada para derivar chaves de criptografia para o grupo de aplicativos do Weave especificado.
[in] aUseRotatingKey
Verdadeiro se o grupo de aplicativos do Weave usar chaves de mensagens rotativas.
Retornos
Uma referência ao objeto Binding.

Security_AuthenticationMode

Configuration & Security_AuthenticationMode(
  WeaveAuthMode aAuthMode
)

Defina o modo de autenticação solicitado a ser usado para autenticar o peering.

Detalhes
Parâmetros
[in] aAuthMode
O modo de autenticação solicitado.
Retornos
Uma referência ao objeto Binding.

Security_CASESession

Configuration & Security_CASESession(
  void
)

Ao se comunicar com o peering, envie e receba mensagens criptografadas usando uma chave de sessão CASE estabelecida com o nó de peering.

Se a sessão necessária não estiver disponível, ela será estabelecida automaticamente como parte da preparação da vinculação.

Detalhes
Retornos
Uma referência ao objeto de vinculação.

Security_EncryptionType

Configuration & Security_EncryptionType(
  uint8_t aEncType
)

Ao se comunicar com o peer, enviar e receber mensagens criptografadas usando o tipo de criptografia de mensagens especificado.

Detalhes
Parâmetros
[in] aEncType
O tipo de criptografia de mensagens do Weave.
Retornos
Uma referência ao objeto Binding.

Security_Key

Configuration & Security_Key(
  uint32_t aKeyId
)

Ao se comunicar com o peer, enviar e receber mensagens criptografadas usando uma chave especificada.

Detalhes
Parâmetros
[in] aKeyId
O ID da chave de criptografia. A chave especificada precisa ser adequada para a criptografia de mensagens do Weave.
Retornos
Uma referência ao objeto Binding.

Security_None

Configuration & Security_None(
  void
)

Ao se comunicar com o peer, envie e receba itens não criptografados (por exemplo,

não seguras).

Detalhes
Retornos
Uma referência ao objeto de vinculação.

Security_PASESession

Configuration & Security_PASESession(
  uint8_t aPasswordSource
)

Ao se comunicar com o peering, envie e receba mensagens criptografadas usando uma chave de sessão PASE estabelecida com o nó de peering.

Se a sessão necessária não estiver disponível, ela será estabelecida automaticamente como parte da preparação da vinculação.

Detalhes
Parâmetros
[in] aPasswordSource
A fonte da senha a ser usada durante o estabelecimento da sessão de PASE.
Retornos
Uma referência ao objeto de vinculação.

Security_SharedCASESession

Configuration & Security_SharedCASESession(
  void
)

Ao se comunicar com o peering, envie e receba mensagens criptografadas usando uma chave de sessão CASE compartilhada estabelecida com o roteador Nest Core.

Se a sessão necessária não estiver disponível, ela será estabelecida automaticamente como parte da preparação da vinculação.

Detalhes
Retornos
Uma referência ao objeto de vinculação.

Security_SharedCASESession

Configuration & Security_SharedCASESession(
  uint64_t aRouterNodeId
)

Ao se comunicar com o peering, envie e receba mensagens criptografadas usando uma chave de sessão CASE compartilhada estabelecida com um nó de roteador especificado.

Se a sessão necessária não estiver disponível, ela será estabelecida automaticamente como parte da preparação da vinculação.

Detalhes
Parâmetros
[in] aRouterNodeId
O ID do nó do Weave do roteador com que a sessão CASE compartilhada deve ser estabelecida.
Retornos
Uma referência ao objeto de vinculação.

Security_TAKESession

Configuration & Security_TAKESession()

Ao se comunicar com o peer, envie e receba mensagens criptografadas usando uma chave de sessão Take estabelecida com o nó do peer.

Se a sessão necessária não estiver disponível, ela será estabelecida automaticamente como parte da preparação da vinculação.

Detalhes
Retornos
Uma referência ao objeto de vinculação.

TargetAddress_IP

Configuration & TargetAddress_IP(
  nl::Inet::IPAddress aPeerAddress,
  uint16_t aPeerPort,
  InterfaceId aInterfaceId
)

Ao se comunicar com o peering, use o endereço IP, a porta e a interface de rede específicos.

Detalhes
Parâmetros
[in] aPeerAddress
Endereço IP do peer
[in] aPeerPort
Porta remota
[in] aInterfaceId
O ID da interface de rede local a ser usada para comunicação
Retornos
Uma referência ao objeto de vinculação.

TargetAddress_IP

Configuration & TargetAddress_IP(
  const char *aHostName,
  uint16_t aPeerPort,
  InterfaceId aInterfaceId
)

Ao se comunicar com o peer, use o nome do host, a porta e a interface de rede específicos.

OBSERVAÇÃO: o autor da chamada deve assegurar que a string de nome de host fornecida permaneça válida até que a fase de preparação da vinculação seja concluída.

Detalhes
Parâmetros
[in] aHostName
Uma string terminada em NULL contendo o nome do host do peering.
[in] aPeerPort
Porta remota a ser usada na comunicação com o terminal.
[in] aInterfaceId
O ID da interface de rede local a ser usada para comunicação.
Retornos
Uma referência ao objeto de vinculação.

TargetAddress_IP

Configuration & TargetAddress_IP(
  const char *aHostName,
  size_t aHostNameLen,
  uint16_t aPeerPort,
  InterfaceId aInterfaceId
)

Ao se comunicar com o peer, use o nome do host, a porta e a interface de rede específicos.

OBSERVAÇÃO: o autor da chamada deve assegurar que a string de nome de host fornecida permaneça válida até que a fase de preparação da vinculação seja concluída.

Detalhes
Parâmetros
[in] aHostName
String com o nome do host do peering. Essa string não precisa terminar com NULL.
[in] aHostNameLen
O comprimento da string apontada por aHostName.
[in] aPeerPort
Porta remota a ser usada na comunicação com o terminal.
[in] aInterfaceId
O ID da interface de rede local a ser usada para comunicação.
Retornos
Uma referência ao objeto de vinculação.

TargetAddress_WeaveFabric

Configuration & TargetAddress_WeaveFabric(
  uint16_t aSubnetId
)

Ao se comunicar com o peering, use um endereço de malha do Weave derivado do ID do nó do peering e de uma sub-rede especificada.

Detalhes
Parâmetros
[in] aSubnetId
O ID da sub-rede a ser usado na formação do endereço de malha do Weave do peer.
Retornos
Uma referência ao objeto de vinculação.

TargetAddress_WeaveService

Configuration & TargetAddress_WeaveService(
  void
)

Ao se comunicar com o peer, use um endereço de malha de serviço do Weave derivado do ID do nó do peering.

Detalhes
Retornos
Uma referência ao objeto de vinculação.

Target_NodeId

Configuration & Target_NodeId(
  uint64_t aPeerNodeId
)

Configure a vinculação para se comunicar com um ID de nó do Weave específico.

Detalhes
Parâmetros
[in] aPeerNodeId
ID do nó de peering.
Retornos
Uma referência ao objeto de vinculação.

Target_ServiceEndpoint

Configuration & Target_ServiceEndpoint(
  uint64_t aPeerNodeId
)

Configure a vinculação para se comunicar com um endpoint específico do serviço Weave.

Se não for configurado de outra forma, o endereço de peering será definido como o endereço de malha do Weave do endpoint do serviço.

Detalhes
Parâmetros
[in] serviceEndpointId
O ID do nó do endpoint do serviço com que a comunicação vai ocorrer.
Retornos
Uma referência ao objeto de vinculação.

Transport_DefaultWRMPConfig

Configuration & Transport_DefaultWRMPConfig(
  const WRMPConfig & aWRMPConfig
)

Defina a configuração WRMP padrão para contextos de troca criados a partir desse objeto Binding.

Detalhes
Parâmetros
[in] aWRMPConfig
Uma referência à nova configuração padrão do WRMP.
Retornos
Uma referência ao objeto de vinculação.

Transport_ExistingConnection

Configuration & Transport_ExistingConnection(
  WeaveConnection *apConnection
)

Use uma conexão Weave existente para se comunicar com o colega.

OBSERVAÇÃO: a contagem de referência no objeto de conexão é incrementada quando a preparação da vinculação é bem-sucedida. Assim, o aplicativo é responsável por garantir que o objeto de conexão permaneça ativo até esse momento.

Detalhes
Parâmetros
[in] con
Um ponteiro para a conexão do Weave existente.
Retornos
Uma referência ao objeto de vinculação.

Transport_TCP

Configuration & Transport_TCP(
  void
)

Use o TCP para se comunicar com o peer.

Detalhes
Retornos
Uma referência ao objeto de vinculação.

Transport_UDP

Configuration & Transport_UDP(
  void
)

Use o UDP para se comunicar com o peer.

Detalhes
Retornos
Uma referência ao objeto de vinculação.

Transport_UDP_PathMTU

Configuration & Transport_UDP_PathMTU(
  uint32_t aPathMTU
)

Defina a MTU do caminho esperado para pacotes UDP que viajam para o peering.

Para alguns protocolos do Weave, isso será usado para ajustar dinamicamente o tamanho do payload da mensagem.

Detalhes
Parâmetros
[in] aPathMTU
A MTU de caminho esperado para pacotes UDP que viajam para o peering.
Retornos
Uma referência ao objeto de vinculação.

Transport_UDP_WRM

Configuration & Transport_UDP_WRM(
  void
)

Use o protocolo de mensagens confiáveis do Weave ao se comunicar com o colega.

Detalhes
Retornos
Uma referência ao objeto de vinculação.