nl::Weave::Vinculación::Configuración

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

Proporciona una interfaz de estilo declarativo para configurar y preparar un objeto Binding.

Resumen

Cuando se configura una Binding, las aplicaciones deben llamar al menos a un método de cada uno de los siguientes grupos de configuración: Target, Transport y Security. Se puede llamar a otros métodos según sea necesario para anular el comportamiento predeterminado.

Si se invocan configuraciones mutuamente excluyentes (p.ej., Transport_TCP() seguido de Transport_UDP()), gana el último que se llamará.

Funciones públicas

ConfigureFromMessage(const WeaveMessageInfo *aMsgInfo, const Inet::IPPacketInfo *aPacketInfo)
Configura la vinculación para permitir la comunicación con el remitente de un mensaje recibido.
DNS_Options(uint8_t dnsOptions)
Cuando resuelvas el nombre de host del par, usa las opciones de DNS especificadas.
Exchange_ResponseTimeoutMsec(uint32_t aResponseTimeoutMsec)
Se configuró el tiempo de espera de respuesta predeterminado para los contextos de intercambio creados a partir de este objeto Binding.
GetError(void) const
Muestra cualquier error que se haya producido al configurar la vinculación.
PrepareBinding(void)
Es el proceso de preparación de la vinculación para la comunicación con el par.
Security_AppGroupKey(uint32_t aAppGroupGlobalId, uint32_t aRootKeyId, bool aUseRotatingKey)
Al comunicarte con un par, envía y recibe mensajes encriptados para un determinado grupo de aplicaciones de Weave.
Security_AuthenticationMode(WeaveAuthMode aAuthMode)
Configura el modo de autenticación solicitado para usarlo en la autenticación del par.
Security_CASESession(void)
Cuando te comuniques con un par de pares, envía y recibe mensajes encriptados con una clave de sesión CASE establecida con el nodo de par.
Security_EncryptionType(uint8_t aEncType)
Cuando te comunicas con el par, envía y recibe mensajes encriptados con el tipo de encriptación de mensajes especificado.
Security_Key(uint32_t aKeyId)
Al comunicarte con un par, envía y recibe mensajes encriptados con una clave específica.
Security_None(void)
Cuando te comunicas con el par, envía y recibe sin encriptar (es decir,
Security_PASESession(uint8_t aPasswordSource)
Cuando te comunicas con el par, envía y recibe mensajes encriptados con una clave de sesión PASE establecida con el nodo de intercambio de tráfico.
Security_SharedCASESession(void)
Cuando te comuniques con un par de ellos, envía y recibe mensajes encriptados con una clave de sesión CASE compartida con el router principal de Nest.
Security_SharedCASESession(uint64_t aRouterNodeId)
Cuando te comunicas con el par, envía y recibe mensajes encriptados con una clave de sesión CASE compartida con un nodo del router especificado.
Security_TAKESession()
Cuando te comuniques con un par de pares, envía y recibe mensajes encriptados con la clave de sesión GET establecida con el nodo de intercambio de tráfico.
TargetAddress_IP(nl::Inet::IPAddress aPeerAddress, uint16_t aPeerPort, InterfaceId aInterfaceId)
Cuando te comuniques con el par, usa la dirección IP, el puerto y la interfaz de red específicos.
TargetAddress_IP(const char *aHostName, uint16_t aPeerPort, InterfaceId aInterfaceId)
Cuando te comuniques con el par, usa el nombre de host, el puerto y la interfaz de red específicos.
TargetAddress_IP(const char *aHostName, size_t aHostNameLen, uint16_t aPeerPort, InterfaceId aInterfaceId)
Cuando te comuniques con el par, usa el nombre de host, el puerto y la interfaz de red específicos.
TargetAddress_WeaveFabric(uint16_t aSubnetId)
Cuando te comuniques con el par, usa una dirección de tela de Weave derivada del ID del nodo del par y una subred especificada.
TargetAddress_WeaveService(void)
Cuando te comuniques con el par de intercambio de tráfico, usa una dirección de tejido de servicio de Weave a partir del ID del nodo correspondiente.
Target_NodeId(uint64_t aPeerNodeId)
Configura la vinculación para que se comunique con un ID de nodo de Weave específico.
Target_ServiceEndpoint(uint64_t aPeerNodeId)
Configura la vinculación para que se comunique con un extremo del servicio de Weave específico.
Transport_DefaultWRMPConfig(const WRMPConfig & aWRMPConfig)
Establece la configuración predeterminada de WRMP para los contextos de intercambio creados a partir de este objeto Binding.
Transport_ExistingConnection(WeaveConnection *apConnection)
Usa una conexión de Weave existente para comunicarte con el par.
Transport_TCP(void)
Usa TCP para comunicarte con el par.
Transport_UDP(void)
Usa UDP para comunicarte con el par.
Transport_UDP_PathMTU(uint32_t aPathMTU)
Configura la MTU de la ruta de acceso esperada para los paquetes UDP que se trasladan al par.
Transport_UDP_WRM(void)
Usa el protocolo de mensajes confiables de Weave cuando te comunicas con el interlocutor.

Funciones públicas

ConfigurarDeMensaje

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

Configura la vinculación para permitir la comunicación con el remitente de un mensaje recibido.

Detalles
Parámetros
[in] aMsgInfo
Estructura de la información del mensaje asociada con el mensaje recibido
[in] aPacketInfo
Es la información del paquete para el mensaje recibido.

DNS_Opciones

Configuration & DNS_Options(
  uint8_t dnsOptions
)

Cuando resuelvas el nombre de host del par, usa las opciones de DNS especificadas.

Detalles
Parámetros
[in] dnsOptions
Valor entero que controla cómo se realiza la resolución del nombre de host. El valor debe ser uno de los valores de la enumeración #::nl::Inet::DNSOptions.
Qué muestra
Una referencia al objeto de vinculación.

Exchange_ResponseTimeoutMsec

Configuration & Exchange_ResponseTimeoutMsec(
  uint32_t aResponseTimeoutMsec
)

Se configuró el tiempo de espera de respuesta predeterminado para los contextos de intercambio creados a partir de este objeto Binding.

Details
Parámetros
[in] aResponseTimeoutMsec
El tiempo de respuesta predeterminado, en ms.
Qué muestra
Una referencia al objeto de vinculación.

Error

WEAVE_ERROR GetError(
  void
) const 

Muestra cualquier error que se haya producido al configurar la vinculación.

PrepareBinding

WEAVE_ERROR PrepareBinding(
  void
)

Es el proceso de preparación de la vinculación para la comunicación con el par.

Security_AppGroupKey

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

Al comunicarte con un par, envía y recibe mensajes encriptados para un determinado grupo de aplicaciones de Weave.

Detalles
Parámetros
[in] aAppGroupGlobalId
El ID global del grupo de aplicaciones para el que se deben encriptar los mensajes.
[in] aRootKeyId
La clave raíz que se usa para derivar claves de encriptación para el grupo de aplicaciones de Weave especificado.
[in] aUseRotatingKey
Verdadero si el grupo de aplicaciones de Weave utiliza claves de mensaje rotativas.
Qué muestra
Una referencia al objeto Binding.

Modo de autenticación de seguridad

Configuration & Security_AuthenticationMode(
  WeaveAuthMode aAuthMode
)

Configura el modo de autenticación solicitado para usarlo en la autenticación del par.

Detalles
Parámetros
[in] aAuthMode
El modo de autenticación solicitado
Qué muestra
Una referencia al objeto Binding.

Security_CASESession

Configuration & Security_CASESession(
  void
)

Cuando te comuniques con un par de pares, envía y recibe mensajes encriptados con una clave de sesión CASE establecida con el nodo de par.

Si la sesión necesaria no está disponible, se establecerá automáticamente como parte de la preparación de la vinculación.

Detalles
Qué muestra
Una referencia al objeto de vinculación.

Seguridad_Tipo de encriptación

Configuration & Security_EncryptionType(
  uint8_t aEncType
)

Cuando te comunicas con el par, envía y recibe mensajes encriptados con el tipo de encriptación de mensajes especificado.

Detalles
Parámetros
[in] aEncType
El tipo de encriptación de mensajes de Weave.
Qué muestra
Una referencia al objeto Binding.

Clave de seguridad

Configuration & Security_Key(
  uint32_t aKeyId
)

Al comunicarte con un par, envía y recibe mensajes encriptados con una clave específica.

Detalles
Parámetros
[in] aKeyId
El ID de la clave de encriptación. La clave especificada debe ser apropiada para la encriptación de mensajes de Weave.
Qué muestra
Una referencia al objeto Binding.

Seguridad_Ninguna

Configuration & Security_None(
  void
)

Cuando te comunicas con el par, envía y recibe sin encriptar (es decir,

mensajes no seguros).

Detalles
Qué muestra
Una referencia al objeto de vinculación.

Seguridad_PASESesión

Configuration & Security_PASESession(
  uint8_t aPasswordSource
)

Cuando te comunicas con el par, envía y recibe mensajes encriptados con una clave de sesión PASE establecida con el nodo de intercambio de tráfico.

Si la sesión necesaria no está disponible, se establecerá automáticamente como parte de la preparación de la vinculación.

Detalles
Parámetros
[in] aPasswordSource
La fuente de la contraseña que se usará durante el establecimiento de la sesión de PASE.
Qué muestra
Una referencia al objeto de vinculación.

Security_SharedCASESession

Configuration & Security_SharedCASESession(
  void
)

Cuando te comuniques con un par de ellos, envía y recibe mensajes encriptados con una clave de sesión CASE compartida con el router principal de Nest.

Si la sesión necesaria no está disponible, se establecerá automáticamente como parte de la preparación de la vinculación.

Detalles
Qué muestra
Una referencia al objeto de vinculación.

Security_SharedCASESession

Configuration & Security_SharedCASESession(
  uint64_t aRouterNodeId
)

Cuando te comunicas con el par, envía y recibe mensajes encriptados con una clave de sesión CASE compartida con un nodo del router especificado.

Si la sesión necesaria no está disponible, se establecerá automáticamente como parte de la preparación de la vinculación.

Detalles
Parámetros
[in] aRouterNodeId
El ID del nodo de Weave del router con el que se debe establecer la sesión CASE compartida.
Qué muestra
Una referencia al objeto de vinculación.

Sesión_de_seguridad

Configuration & Security_TAKESession()

Cuando te comuniques con un par de pares, envía y recibe mensajes encriptados con la clave de sesión GET establecida con el nodo de intercambio de tráfico.

Si la sesión necesaria no está disponible, se establecerá automáticamente como parte de la preparación de la vinculación.

Detalles
Qué muestra
Una referencia al objeto de vinculación.

DirecciónDirecciónDeObjetivo

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

Cuando te comuniques con el par, usa la dirección IP, el puerto y la interfaz de red específicos.

Detalles
Parámetros
[in] aPeerAddress
Dirección IP del par
[in] aPeerPort
Puerto remoto
[in] aInterfaceId
El ID de la interfaz de red local que se utiliza para la comunicación
Qué muestra
Una referencia al objeto de vinculación.

DirecciónDirecciónDeObjetivo

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

Cuando te comuniques con el par, usa el nombre de host, el puerto y la interfaz de red específicos.

NOTA: El llamador debe garantizar que la string del nombre de host proporcionada siga siendo válida hasta que se complete la fase de preparación de la vinculación.

Detalles
Parámetros
[in] aHostName
Una string terminada en NULL que contiene el nombre de host del par.
[in] aPeerPort
Puerto remoto que se usará durante la comunicación con el par.
[in] aInterfaceId
El ID de la interfaz de red local que se utiliza para la comunicación.
Qué muestra
Una referencia al objeto de vinculación.

DirecciónDirecciónDeObjetivo

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

Cuando te comuniques con el par, usa el nombre de host, el puerto y la interfaz de red específicos.

NOTA: El llamador debe garantizar que la string del nombre de host proporcionada siga siendo válida hasta que se complete la fase de preparación de la vinculación.

Detalles
Parámetros
[in] aHostName
Una string que contiene el nombre del host del par. No es necesario que la string finalice con NULL.
[in] aHostNameLen
Longitud de la string a la que apunta aHostHost.
[in] aPeerPort
Puerto remoto que se usará durante la comunicación con el par.
[in] aInterfaceId
El ID de la interfaz de red local que se utiliza para la comunicación.
Qué muestra
Una referencia al objeto de vinculación.

TargetAddress_WeaveFabric

Configuration & TargetAddress_WeaveFabric(
  uint16_t aSubnetId
)

Cuando te comuniques con el par, usa una dirección de tela de Weave derivada del ID del nodo del par y una subred especificada.

Detalles
Parámetros
[in] aSubnetId
El ID de subred que se usará para formar la dirección de la capa de Weave del par.
Qué muestra
Una referencia al objeto de vinculación.

TargetAddress_WeaveService

Configuration & TargetAddress_WeaveService(
  void
)

Cuando te comuniques con el par de intercambio de tráfico, usa una dirección de tejido de servicio de Weave a partir del ID del nodo correspondiente.

Detalles
Qué muestra
Una referencia al objeto de vinculación.

ID del nodo de destino

Configuration & Target_NodeId(
  uint64_t aPeerNodeId
)

Configura la vinculación para que se comunique con un ID de nodo de Weave específico.

Detalles
Parámetros
[in] aPeerNodeId
Es el ID del nodo del par.
Qué muestra
Una referencia al objeto de vinculación.

Target_ServiceEndpoint.

Configuration & Target_ServiceEndpoint(
  uint64_t aPeerNodeId
)

Configura la vinculación para que se comunique con un extremo del servicio de Weave específico.

Si no se configura, la dirección del par se establece en la dirección de tejido de Weave del extremo del servicio.

Detalles
Parámetros
[in] serviceEndpointId
El ID del nodo del extremo del servicio con el que se realizará la comunicación.
Qué muestra
Una referencia al objeto de vinculación.

Transport_DefaultWRMPConfig

Configuration & Transport_DefaultWRMPConfig(
  const WRMPConfig & aWRMPConfig
)

Establece la configuración predeterminada de WRMP para los contextos de intercambio creados a partir de este objeto Binding.

Detalles
Parámetros
[in] aWRMPConfig
Una referencia a la nueva configuración predeterminada de WRMP
Qué muestra
Una referencia al objeto de vinculación.

Transport_ExistingConnection

Configuration & Transport_ExistingConnection(
  WeaveConnection *apConnection
)

Usa una conexión de Weave existente para comunicarte con el par.

NOTA: El recuento de referencias en el objeto de conexión aumenta cuando se realiza correctamente la preparación de la vinculación. Por lo tanto, la aplicación es responsable de garantizar que el objeto de conexión permanezca activo hasta ese momento.

Detalles
Parámetros
[in] con
Un puntero para la conexión de Weave existente.
Qué muestra
Una referencia al objeto de vinculación.

Transport_TCP

Configuration & Transport_TCP(
  void
)

Usa TCP para comunicarte con el par.

Detalles
Qué muestra
Una referencia al objeto de vinculación.

Transport_UDP

Configuration & Transport_UDP(
  void
)

Usa UDP para comunicarte con el par.

Detalles
Qué muestra
Una referencia al objeto de vinculación.

Transport_UDP_PathMTU

Configuration & Transport_UDP_PathMTU(
  uint32_t aPathMTU
)

Configura la MTU de la ruta de acceso esperada para los paquetes UDP que se trasladan al par.

En algunos protocolos de Weave, se utilizará esta opción para ajustar de forma dinámica el tamaño de la carga útil del mensaje de Weave.

Detalles
Parámetros
[in] aPathMTU
La MTU de la ruta de acceso esperada para los paquetes UDP que se trasladan al par.
Qué muestra
Una referencia al objeto de vinculación.

Transport_UDP_WRM

Configuration & Transport_UDP_WRM(
  void
)

Usa el protocolo de mensajes confiables de Weave cuando te comunicas con el interlocutor.

Detalles
Qué muestra
Una referencia al objeto de vinculación.