nl::Weave::Binding::Configuration

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

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

Resumen

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

Si se invocan parámetros de configuración mutuamente excluyentes (p.ej., Transport_TCP() seguido de Transport_UDP()), el último que se llame victorias.

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 intercambio de tráfico, usa las opciones de DNS especificadas.
Exchange_ResponseTimeoutMsec(uint32_t aResponseTimeoutMsec)
Establece 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 durante la configuración de Binding.
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)
Cuando te comuniques con el par, envía y recibe mensajes encriptados para un grupo de aplicaciones de Weave específico.
Security_AuthenticationMode(WeaveAuthMode aAuthMode)
Configura el modo de autenticación solicitado que se usará para autenticar al par.
Security_CASESession(void)
Cuando te comuniques con el par, envía y recibe mensajes encriptados usando una clave de sesión CASE establecida con el nodo par.
Security_EncryptionType(uint8_t aEncType)
Cuando te comuniques con el par, envía y recibe mensajes encriptados usando el tipo de encriptación de mensajes especificado.
Security_Key(uint32_t aKeyId)
Cuando te comuniques con el par, envía y recibe mensajes encriptados con una clave específica.
Security_None(void)
Cuando te comuniques con el par, envía y recibe datos sin encriptar (es decir,
Security_PASESession(uint8_t aPasswordSource)
Cuando te comuniques 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 el par, envía y recibe mensajes encriptados usando una clave de sesión CASE compartida que se estableció con el router Nest Core.
Security_SharedCASESession(uint64_t aRouterNodeId)
Cuando te comuniques con el par, envía y recibe mensajes encriptados usando una clave de sesión CASE compartida establecida con un nodo de router específico.
Security_TAKESession()
Cuando te comuniques con el par, envía y recibe mensajes encriptados usando una clave de sesión take establecida con el nodo par.
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 la app similar, usa una dirección de tejido de Weave derivada del ID de nodo de la app similar y una subred especificada.
TargetAddress_WeaveService(void)
Cuando te comuniques con la app similar, usa una dirección de tejido de servicios de Weave derivada del ID de nodo de la app similar.
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 de WRMP predeterminada 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 intercambio de tráfico.
Transport_UDP(void)
Usa UDP para comunicarte con el intercambio de tráfico.
Transport_UDP_PathMTU(uint32_t aPathMTU)
Establece la MTU de ruta de acceso esperada para los paquetes UDP que viajan al intercambio de tráfico.
Transport_UDP_WRM(void)
Usa el protocolo Weave Reliable Messaging cuando te comuniques con el par.

Funciones públicas

ConfigureFromMessage

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
Información del paquete del mensaje recibido.

DNS_Options

Configuration & DNS_Options(
  uint8_t dnsOptions
)

Cuando resuelvas el nombre de host del intercambio de tráfico, usa las opciones de DNS especificadas.

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

Exchange_ResponseTimeoutMsec

Configuration & Exchange_ResponseTimeoutMsec(
  uint32_t aResponseTimeoutMsec
)

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

Detalles
Parámetros
[in] aResponseTimeoutMsec
El tiempo de respuesta predeterminado, en ms.
Resultado que se muestra
Una referencia al objeto de vinculación.

GetError

WEAVE_ERROR GetError(
  void
) const 

Muestra cualquier error que se haya producido durante la configuración de Binding.

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
)

Cuando te comuniques con el par, envía y recibe mensajes encriptados para un grupo de aplicaciones de Weave específico.

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
Es verdadero si Weave Application Group usa claves de mensaje rotativas.
Resultado que se muestra
Una referencia al objeto Binding.

Security_AuthenticationMode

Configuration & Security_AuthenticationMode(
  WeaveAuthMode aAuthMode
)

Configura el modo de autenticación solicitado que se usará para autenticar al par.

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

Security_CASESession

Configuration & Security_CASESession(
  void
)

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

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

Detalles
Resultado que se muestra
Una referencia al objeto de vinculación.

Security_EncryptionType

Configuration & Security_EncryptionType(
  uint8_t aEncType
)

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

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

Security_Key

Configuration & Security_Key(
  uint32_t aKeyId
)

Cuando te comuniques con el 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 adecuada para la encriptación de mensajes de Weave.
Resultado que se muestra
Una referencia al objeto Binding.

Security_None

Configuration & Security_None(
  void
)

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

no seguros).

Detalles
Resultado que se muestra
Una referencia al objeto de vinculación.

Security_PASESession

Configuration & Security_PASESession(
  uint8_t aPasswordSource
)

Cuando te comuniques 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 utilizará durante el establecimiento de la sesión de PASE.
Resultado que se muestra
Una referencia al objeto de vinculación.

Security_SharedCASESession

Configuration & Security_SharedCASESession(
  void
)

Cuando te comuniques con el par, envía y recibe mensajes encriptados usando una clave de sesión CASE compartida que se estableció con el router Nest Core.

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

Detalles
Resultado que se muestra
Una referencia al objeto de vinculación.

Security_SharedCASESession

Configuration & Security_SharedCASESession(
  uint64_t aRouterNodeId
)

Cuando te comuniques con el par, envía y recibe mensajes encriptados usando una clave de sesión CASE compartida establecida con un nodo de router especí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] aRouterNodeId
El ID del nodo de Weave del router con el que se debe establecer la sesión CASE compartida.
Resultado que se muestra
Una referencia al objeto de vinculación.

Security_TAKESession

Configuration & Security_TAKESession()

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

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

Detalles
Resultado que se muestra
Una referencia al objeto de vinculación.

TargetAddress_IP

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 intercambio de tráfico
[in] aPeerPort
Puerto remoto
[in] aInterfaceId
El ID de la interfaz de red local que se usará para la comunicación
Resultado que se muestra
Una referencia al objeto de vinculación.

TargetAddress_IP

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 asegurarse de que la cadena de 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 intercambio de tráfico.
[in] aPeerPort
Puerto remoto que se usará cuando se comunique con el par.
[in] aInterfaceId
El ID de la interfaz de red local que se usará para la comunicación.
Resultado que se muestra
Una referencia al objeto de vinculación.

TargetAddress_IP

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 asegurarse de que la cadena de 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
Es una cadena que contiene el nombre de host del intercambio de tráfico. Esta cadena no necesita ser terminada como NULL.
[in] aHostNameLen
La longitud de la string a la que apunta aHostName.
[in] aPeerPort
Puerto remoto que se usará cuando se comunique con el par.
[in] aInterfaceId
El ID de la interfaz de red local que se usará para la comunicación.
Resultado que se muestra
Una referencia al objeto de vinculación.

TargetAddress_WeaveFabric

Configuration & TargetAddress_WeaveFabric(
  uint16_t aSubnetId
)

Cuando te comuniques con la app similar, usa una dirección de tejido de Weave derivada del ID de nodo de la app similar y una subred especificada.

Detalles
Parámetros
[in] aSubnetId
Es el ID de la subred que se usará para formar la dirección de tejido de Weave del par.
Resultado que se muestra
Una referencia al objeto de vinculación.

TargetAddress_WeaveService

Configuration & TargetAddress_WeaveService(
  void
)

Cuando te comuniques con la app similar, usa una dirección de tejido de servicios de Weave derivada del ID de nodo de la app similar.

Detalles
Resultado que se muestra
Una referencia al objeto de vinculación.

Target_NodeId

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 de intercambio de tráfico.
Resultado que se 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 de otra manera, la dirección de 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 producirá la comunicación.
Resultado que se muestra
Una referencia al objeto de vinculación.

Transport_DefaultWRMPConfig

Configuration & Transport_DefaultWRMPConfig(
  const WRMPConfig & aWRMPConfig
)

Establece la configuración de WRMP predeterminada 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.
Resultado que se 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 referencia en el objeto de conexión aumenta cuando la preparación de la vinculación se realiza correctamente. 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 a la conexión de Weave existente.
Resultado que se muestra
Una referencia al objeto de vinculación.

Transport_TCP

Configuration & Transport_TCP(
  void
)

Usa TCP para comunicarte con el intercambio de tráfico.

Detalles
Resultado que se muestra
Una referencia al objeto de vinculación.

Transport_UDP

Configuration & Transport_UDP(
  void
)

Usa UDP para comunicarte con el intercambio de tráfico.

Detalles
Resultado que se muestra
Una referencia al objeto de vinculación.

Transport_UDP_PathMTU

Configuration & Transport_UDP_PathMTU(
  uint32_t aPathMTU
)

Establece la MTU de ruta de acceso esperada para los paquetes UDP que se envían al intercambio de tráfico.

Para algunos protocolos de Weave, esto se utiliza para ajustar dinámicamente el tamaño de la carga útil del mensaje de Weave.

Detalles
Parámetros
[in] aPathMTU
Es la MTU de ruta de acceso esperada para los paquetes UDP que viajan al intercambio de tráfico.
Resultado que se muestra
Una referencia al objeto de vinculación.

Transport_UDP_WRM

Configuration & Transport_UDP_WRM(
  void
)

Usa el protocolo Weave Reliable Messaging cuando te comuniques con el par.

Detalles
Resultado que se muestra
Una referencia al objeto de vinculación.