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
Retorna qualquer erro que ocorreu ao configurar a Binding.
PrepareBinding(void)
Ser o processo de preparar o Binding para comunicação com o peering.
Security_AppGroupKey(uint32_t aAppGroupGlobalId, uint32_t aRootKeyId, bool aUseRotatingKey)
Ao se comunicar com um colega, envie e receba mensagens criptografadas para um grupo de aplicativos Weave especificado.
Security_AuthenticationMode(WeaveAuthMode aAuthMode)
Define 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 peering, envie e receba mensagens criptografadas usando o tipo de criptografia de mensagem especificado.
Security_Key(uint32_t aKeyId)
Ao se comunicar com o peering, envie e receba mensagens criptografadas usando uma chave especificada.
Security_None(void)
Ao se comunicar com o peering, envie e receba sem criptografia (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 peering, 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 peering, envie e receba mensagens criptografadas usando uma chave de sessão Take estabelecida com o nó de peering.
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 peering, use um endereço de malha de serviços 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ó específico do Weave.
Target_ServiceEndpoint(uint64_t aPeerNodeId)
Configurar a vinculação para se comunicar com um endpoint específico do serviço Weave.
Transport_DefaultWRMPConfig(const WRMPConfig & aWRMPConfig)
Defina a configuração padrão do WRMP para contextos de troca criados a partir desse objeto Binding.
Transport_ExistingConnection(WeaveConnection *apConnection)
Use uma conexão do Weave já existente para se comunicar com o peering.
Transport_TCP(void)
Use o TCP para se comunicar com o peering.
Transport_UDP(void)
Use o UDP para se comunicar com o peering.
Transport_UDP_PathMTU(uint32_t aPathMTU)
Defina a MTU do caminho esperado para os pacotes UDP que vão para o peering.
Transport_UDP_WRM(void)
Usar o protocolo Weave Responsible Messaging ao se comunicar com o ponto.

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 é executada. O valor deve ser um dos valores da enumeração #::nl::Inet::DNSOptions.
Retorna
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.
Retorna
Uma referência ao objeto de vinculação.

GetError

WEAVE_ERROR GetError(
  void
) const 

Retorna qualquer erro que ocorreu ao configurar a Binding.

PrepareBinding

WEAVE_ERROR PrepareBinding(
  void
)

Ser o processo de preparar o Binding para comunicação com o peering.

Security_AppGroupKey

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

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

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

Security_AuthenticationMode

Configuration & Security_AuthenticationMode(
  WeaveAuthMode aAuthMode
)

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

Detalhes
Parâmetros
[in] aAuthMode
O modo de autenticação solicitado.
Retorna
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
Retorna
Uma referência ao objeto de vinculação.

Security_EncryptionType

Configuration & Security_EncryptionType(
  uint8_t aEncType
)

Ao se comunicar com o peering, envie e receba mensagens criptografadas usando o tipo de criptografia de mensagem especificado.

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

Security_Key

Configuration & Security_Key(
  uint32_t aKeyId
)

Ao se comunicar com o peering, envie e receba 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.
Retorna
Uma referência ao objeto Binding.

Security_None

Configuration & Security_None(
  void
)

Ao se comunicar com o peering, envie e receba sem criptografia (por exemplo,

não seguras).

Detalhes
Retorna
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 PASE.
Retorna
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
Retorna
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 precisa ser estabelecida.
Retorna
Uma referência ao objeto de vinculação.

Security_TAKESession

Configuration & Security_TAKESession()

Ao se comunicar com o peering, envie e receba mensagens criptografadas usando uma chave de sessão Take 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
Retorna
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 peering
[in] aPeerPort
Porta remota
[in] aInterfaceId
O ID da interface de rede local a ser usada para comunicação
Retorna
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 peering, use o nome do host, a porta e a interface de rede específicos.

OBSERVAÇÃO: o autor da chamada precisa garantir que a string do nome do host fornecida continue 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 peering.
[in] aInterfaceId
O ID da interface de rede local a ser usada para comunicação.
Retorna
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 peering, use o nome do host, a porta e a interface de rede específicos.

OBSERVAÇÃO: o autor da chamada precisa garantir que a string do nome do host fornecida continue 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 como NULL.
[in] aHostNameLen
O comprimento da string apontada por umHostName.
[in] aPeerPort
Porta remota a ser usada na comunicação com o peering.
[in] aInterfaceId
O ID da interface de rede local a ser usada para comunicação.
Retorna
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 para formar o endereço de malha do Weave do peering.
Retorna
Uma referência ao objeto de vinculação.

TargetAddress_WeaveService

Configuration & TargetAddress_WeaveService(
  void
)

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

Detalhes
Retorna
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ó específico do Weave.

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

Target_ServiceEndpoint

Configuration & Target_ServiceEndpoint(
  uint64_t aPeerNodeId
)

Configurar 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 do 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 em que a comunicação ocorrerá.
Retorna
Uma referência ao objeto de vinculação.

Transport_DefaultWRMPConfig

Configuration & Transport_DefaultWRMPConfig(
  const WRMPConfig & aWRMPConfig
)

Defina a configuração padrão do WRMP 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.
Retorna
Uma referência ao objeto de vinculação.

Transport_ExistingConnection

Configuration & Transport_ExistingConnection(
  WeaveConnection *apConnection
)

Use uma conexão do Weave já existente para se comunicar com o peering.

OBSERVAÇÃO: a contagem de referência no objeto de conexão é incrementada quando a preparação de 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.
Retorna
Uma referência ao objeto de vinculação.

Transport_TCP

Configuration & Transport_TCP(
  void
)

Use o TCP para se comunicar com o peering.

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

Transport_UDP

Configuration & Transport_UDP(
  void
)

Use o UDP para se comunicar com o peering.

Detalhes
Retorna
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 os pacotes UDP que vão para o peering.

Em alguns protocolos do Weave, isso será usado para ajustar dinamicamente o tamanho do payload de mensagens do Weave.

Detalhes
Parâmetros
[in] aPathMTU
A MTU do caminho esperado para os pacotes UDP que vão até o peering.
Retorna
Uma referência ao objeto de vinculação.

Transport_UDP_WRM

Configuration & Transport_UDP_WRM(
  void
)

Usar o protocolo Weave Responsible Messaging ao se comunicar com o ponto.

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