nl::Weave::Binding::Configuration

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

Fornisce un'interfaccia di stile dichiarativo per la configurazione e la preparazione di un oggetto Binding.

Riepilogo

Quando configuri un'associazione, le applicazioni devono chiamare almeno un metodo da ciascuno dei seguenti gruppi di configurazione: Destinazione, Trasporto e Sicurezza. Altri metodi possono essere chiamati in base alle necessità per eseguire l'override del comportamento predefinito.

Se vengono richiamate configurazioni che si escludono a vicenda (ad es. Transport_TCP() seguito da Transport_UDP()), l'ultimo a essere chiamato vince.

Funzioni pubbliche

ConfigureFromMessage(const WeaveMessageInfo *aMsgInfo, const Inet::IPPacketInfo *aPacketInfo)
Configura l'associazione per consentire la comunicazione con il mittente di un messaggio ricevuto.
DNS_Options(uint8_t dnsOptions)
Per risolvere il nome host del peer, utilizza le opzioni DNS specificate.
Exchange_ResponseTimeoutMsec(uint32_t aResponseTimeoutMsec)
Imposta il timeout della risposta predefinito per i contesti di scambio creati da questo oggetto Binding.
GetError(void) const
Restituisce gli eventuali errori che si sono verificati durante la configurazione dell'associazione.
PrepareBinding(void)
Essere il processo di preparazione dell'associazione per la comunicazione con il collega.
Security_AppGroupKey(uint32_t aAppGroupGlobalId, uint32_t aRootKeyId, bool aUseRotatingKey)
Durante la comunicazione con il peer, invia e ricevi messaggi criptati per un gruppo di applicazioni Weave specificato.
Security_AuthenticationMode(WeaveAuthMode aAuthMode)
Imposta la modalità di autenticazione richiesta da utilizzare per autenticare il peer.
Security_CASESession(void)
Durante la comunicazione con il peer, invia e ricevi messaggi criptati utilizzando una chiave di sessione CASE stabilita con il nodo peer.
Security_EncryptionType(uint8_t aEncType)
Durante la comunicazione con il peer, invia e ricevi messaggi criptati utilizzando il tipo di crittografia dei messaggi specificato.
Security_Key(uint32_t aKeyId)
Durante la comunicazione con il peer, invia e ricevi messaggi criptati utilizzando una chiave specificata.
Security_None(void)
Durante la comunicazione con il peer, puoi inviare e ricevere messaggi non criptati (ad esempio,
Security_PASESession(uint8_t aPasswordSource)
Durante la comunicazione con il peer, invia e ricevi messaggi criptati utilizzando una chiave di sessione PASE stabilita con il nodo peer.
Security_SharedCASESession(void)
Durante la comunicazione con il peer, invia e ricevi messaggi criptati utilizzando una chiave di sessione CASE condivisa stabilita con il router Nest Core.
Security_SharedCASESession(uint64_t aRouterNodeId)
Durante la comunicazione con il peer, invia e ricevi messaggi criptati utilizzando una chiave di sessione CASE condivisa stabilita con un nodo router specificato.
Security_TAKESession()
Durante la comunicazione con il peer, invia e ricevi messaggi criptati utilizzando una chiave di sessione Take stabilita con il nodo peer.
TargetAddress_IP(nl::Inet::IPAddress aPeerAddress, uint16_t aPeerPort, InterfaceId aInterfaceId)
Quando comunichi con il peer, utilizza l'indirizzo IP, la porta e l'interfaccia di rete specifici.
TargetAddress_IP(const char *aHostName, uint16_t aPeerPort, InterfaceId aInterfaceId)
Quando comunichi con il peer, utilizza il nome host, la porta e l'interfaccia di rete specifici.
TargetAddress_IP(const char *aHostName, size_t aHostNameLen, uint16_t aPeerPort, InterfaceId aInterfaceId)
Quando comunichi con il peer, utilizza il nome host, la porta e l'interfaccia di rete specifici.
TargetAddress_WeaveFabric(uint16_t aSubnetId)
Durante la comunicazione con il peer, utilizza un indirizzo Weave Fabric derivato dall'ID nodo del peer e da una subnet specificata.
TargetAddress_WeaveService(void)
Durante la comunicazione con il peer, utilizza un indirizzo dell'infrastruttura di servizio Weave derivato dall'ID nodo del peer.
Target_NodeId(uint64_t aPeerNodeId)
Configura l'associazione per comunicare con un ID nodo Weave specifico.
Target_ServiceEndpoint(uint64_t aPeerNodeId)
Configura l'associazione per comunicare con un endpoint del servizio Weave specifico.
Transport_DefaultWRMPConfig(const WRMPConfig & aWRMPConfig)
Imposta la configurazione WRMP predefinita per i contesti di scambio creati da questo oggetto Binding.
Transport_ExistingConnection(WeaveConnection *apConnection)
Utilizzare una connessione Weave esistente per comunicare con il collega.
Transport_TCP(void)
Utilizza il protocollo TCP per comunicare con il peer.
Transport_UDP(void)
Utilizza UDP per comunicare con il collega.
Transport_UDP_PathMTU(uint32_t aPathMTU)
Imposta il percorso MTU previsto per i pacchetti UDP che viaggiano verso il peer.
Transport_UDP_WRM(void)
Utilizza il protocollo Weave Reliable Messaging per la comunicazione con il peer.

Funzioni pubbliche

ConfigureFromMessage

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

Configura l'associazione per consentire la comunicazione con il mittente di un messaggio ricevuto.

Dettagli
Parametri
[in] aMsgInfo
Struttura delle informazioni del messaggio associata al messaggio ricevuto.
[in] aPacketInfo
Informazioni sul pacchetto per il messaggio ricevuto.

DNS_Options

Configuration & DNS_Options(
  uint8_t dnsOptions
)

Per risolvere il nome host del peer, utilizza le opzioni DNS specificate.

Dettagli
Parametri
[in] dnsOptions
Un valore intero che controlla il modo in cui viene eseguita la risoluzione del nome host. Il valore deve essere uno dei valori dell'enumerazione #::nl::Inet::DNSOptions.
Restituisce
Un riferimento all'oggetto di associazione.

Exchange_ResponseTimeoutMsec

Configuration & Exchange_ResponseTimeoutMsec(
  uint32_t aResponseTimeoutMsec
)

Imposta il timeout della risposta predefinito per i contesti di scambio creati da questo oggetto Binding.

Dettagli
Parametri
[in] aResponseTimeoutMsec
Il tempo di risposta predefinito, in ms.
Restituisce
Un riferimento all'oggetto di associazione.

GetError

WEAVE_ERROR GetError(
  void
) const 

Restituisce gli eventuali errori che si sono verificati durante la configurazione dell'associazione.

PrepareBinding

WEAVE_ERROR PrepareBinding(
  void
)

Essere il processo di preparazione dell'associazione per la comunicazione con il collega.

Security_AppGroupKey

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

Durante la comunicazione con il peer, invia e ricevi messaggi criptati per un gruppo di applicazioni Weave specificato.

Dettagli
Parametri
[in] aAppGroupGlobalId
L'ID globale del gruppo di applicazioni per cui devono essere criptati i messaggi.
[in] aRootKeyId
La chiave radice utilizzata per ricavare le chiavi di crittografia per il gruppo di applicazioni Weave specificato.
[in] aUseRotatingKey
True se il gruppo di applicazioni Weave utilizza chiavi messaggio rotanti.
Restituisce
Un riferimento all'oggetto Binding.

Security_AuthenticationMode

Configuration & Security_AuthenticationMode(
  WeaveAuthMode aAuthMode
)

Imposta la modalità di autenticazione richiesta da utilizzare per autenticare il peer.

Dettagli
Parametri
[in] aAuthMode
La modalità di autenticazione richiesta.
Restituisce
Un riferimento all'oggetto Binding.

Security_CASESession

Configuration & Security_CASESession(
  void
)

Durante la comunicazione con il peer, invia e ricevi messaggi criptati utilizzando una chiave di sessione CASE stabilita con il nodo peer.

Se la sessione necessaria non è disponibile, verrà stabilita automaticamente durante la preparazione dell'associazione.

Dettagli
Restituisce
Un riferimento all'oggetto di associazione.

Security_EncryptionType

Configuration & Security_EncryptionType(
  uint8_t aEncType
)

Durante la comunicazione con il peer, invia e ricevi messaggi criptati utilizzando il tipo di crittografia dei messaggi specificato.

Dettagli
Parametri
[in] aEncType
Il tipo di crittografia dei messaggi Weave.
Restituisce
Un riferimento all'oggetto Binding.

Security_Key

Configuration & Security_Key(
  uint32_t aKeyId
)

Durante la comunicazione con il peer, invia e ricevi messaggi criptati utilizzando una chiave specificata.

Dettagli
Parametri
[in] aKeyId
L'ID della chiave di crittografia. La chiave specificata deve essere adatta alla crittografia dei messaggi Weave.
Restituisce
Un riferimento all'oggetto Binding.

Security_None

Configuration & Security_None(
  void
)

Durante la comunicazione con il peer, puoi inviare e ricevere messaggi non criptati (ad esempio,

non protetti).

Dettagli
Restituisce
Un riferimento all'oggetto di associazione.

Security_PASESession

Configuration & Security_PASESession(
  uint8_t aPasswordSource
)

Durante la comunicazione con il peer, invia e ricevi messaggi criptati utilizzando una chiave di sessione PASE stabilita con il nodo peer.

Se la sessione necessaria non è disponibile, verrà stabilita automaticamente durante la preparazione dell'associazione.

Dettagli
Parametri
[in] aPasswordSource
L'origine della password da utilizzare durante la creazione di una sessione PASE.
Restituisce
Un riferimento all'oggetto di associazione.

Security_SharedCASESession

Configuration & Security_SharedCASESession(
  void
)

Durante la comunicazione con il peer, invia e ricevi messaggi criptati utilizzando una chiave di sessione CASE condivisa stabilita con il router Nest Core.

Se la sessione necessaria non è disponibile, verrà stabilita automaticamente durante la preparazione dell'associazione.

Dettagli
Restituisce
Un riferimento all'oggetto di associazione.

Security_SharedCASESession

Configuration & Security_SharedCASESession(
  uint64_t aRouterNodeId
)

Durante la comunicazione con il peer, invia e ricevi messaggi criptati utilizzando una chiave di sessione CASE condivisa stabilita con un nodo router specificato.

Se la sessione necessaria non è disponibile, verrà stabilita automaticamente durante la preparazione dell'associazione.

Dettagli
Parametri
[in] aRouterNodeId
L'ID nodo Weave del router con cui deve essere stabilita una sessione CASE condivisa.
Restituisce
Un riferimento all'oggetto di associazione.

Security_TAKESession

Configuration & Security_TAKESession()

Durante la comunicazione con il peer, invia e ricevi messaggi criptati utilizzando una chiave di sessione Take stabilita con il nodo peer.

Se la sessione necessaria non è disponibile, verrà stabilita automaticamente durante la preparazione dell'associazione.

Dettagli
Restituisce
Un riferimento all'oggetto di associazione.

TargetAddress_IP

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

Quando comunichi con il peer, utilizza l'indirizzo IP, la porta e l'interfaccia di rete specifici.

Dettagli
Parametri
[in] aPeerAddress
Indirizzo IP del peer
[in] aPeerPort
Porta remota
[in] aInterfaceId
L'ID dell'interfaccia di rete locale da utilizzare per la comunicazione
Restituisce
Un riferimento all'oggetto di associazione.

TargetAddress_IP

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

Quando comunichi con il peer, utilizza il nome host, la porta e l'interfaccia di rete specifici.

NOTA: il chiamante deve assicurarsi che la stringa del nome host fornita rimanga valida fino al completamento della fase di preparazione dell'associazione.

Dettagli
Parametri
[in] aHostName
Una stringa con terminazione NULL contenente il nome host del peer.
[in] aPeerPort
Porta remota da utilizzare per la comunicazione con il peer.
[in] aInterfaceId
L'ID dell'interfaccia di rete locale da utilizzare per la comunicazione.
Restituisce
Un riferimento all'oggetto di associazione.

TargetAddress_IP

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

Quando comunichi con il peer, utilizza il nome host, la porta e l'interfaccia di rete specifici.

NOTA: il chiamante deve assicurarsi che la stringa del nome host fornita rimanga valida fino al completamento della fase di preparazione dell'associazione.

Dettagli
Parametri
[in] aHostName
Una stringa contenente il nome host del peer. Non è necessario terminare questa stringa con NULL.
[in] aHostNameLen
La lunghezza della stringa a cui punta aHostName.
[in] aPeerPort
Porta remota da utilizzare per la comunicazione con il peer.
[in] aInterfaceId
L'ID dell'interfaccia di rete locale da utilizzare per la comunicazione.
Restituisce
Un riferimento all'oggetto di associazione.

TargetAddress_WeaveFabric

Configuration & TargetAddress_WeaveFabric(
  uint16_t aSubnetId
)

Durante la comunicazione con il peer, utilizza un indirizzo Weave Fabric derivato dall'ID nodo del peer e da una subnet specificata.

Dettagli
Parametri
[in] aSubnetId
L'ID subnet da utilizzare per la creazione dell'indirizzo Weave Fabric del peer.
Restituisce
Un riferimento all'oggetto di associazione.

TargetAddress_WeaveService

Configuration & TargetAddress_WeaveService(
  void
)

Durante la comunicazione con il peer, utilizza un indirizzo dell'infrastruttura di servizio Weave derivato dall'ID nodo del peer.

Dettagli
Restituisce
Un riferimento all'oggetto di associazione.

Target_NodeId

Configuration & Target_NodeId(
  uint64_t aPeerNodeId
)

Configura l'associazione per comunicare con un ID nodo Weave specifico.

Dettagli
Parametri
[in] aPeerNodeId
ID nodo del nodo peer.
Restituisce
Un riferimento all'oggetto di associazione.

Target_ServiceEndpoint

Configuration & Target_ServiceEndpoint(
  uint64_t aPeerNodeId
)

Configura l'associazione per comunicare con un endpoint del servizio Weave specifico.

Se non viene configurato in altro modo, l'indirizzo peer viene impostato sull'indirizzo Weave Fabric dell'endpoint di servizio.

Dettagli
Parametri
[in] serviceEndpointId
L'ID nodo dell'endpoint di servizio con cui verrà eseguita la comunicazione.
Restituisce
Un riferimento all'oggetto di associazione.

Transport_DefaultWRMPConfig

Configuration & Transport_DefaultWRMPConfig(
  const WRMPConfig & aWRMPConfig
)

Imposta la configurazione WRMP predefinita per i contesti di scambio creati da questo oggetto Binding.

Dettagli
Parametri
[in] aWRMPConfig
Un riferimento alla nuova configurazione WRMP predefinita.
Restituisce
Un riferimento all'oggetto di associazione.

Transport_ExistingConnection

Configuration & Transport_ExistingConnection(
  WeaveConnection *apConnection
)

Utilizzare una connessione Weave esistente per comunicare con il collega.

NOTA: il numero di riferimenti nell'oggetto di connessione viene incrementato una volta completata la preparazione dell'associazione. Pertanto, l'applicazione è responsabile di garantire che l'oggetto di connessione rimanga attivo fino a quel momento.

Dettagli
Parametri
[in] con
Un puntatore alla connessione Weave esistente.
Restituisce
Un riferimento all'oggetto di associazione.

Transport_TCP

Configuration & Transport_TCP(
  void
)

Utilizza il protocollo TCP per comunicare con il peer.

Dettagli
Restituisce
Un riferimento all'oggetto di associazione.

Transport_UDP

Configuration & Transport_UDP(
  void
)

Utilizza UDP per comunicare con il collega.

Dettagli
Restituisce
Un riferimento all'oggetto di associazione.

Transport_UDP_PathMTU

Configuration & Transport_UDP_PathMTU(
  uint32_t aPathMTU
)

Imposta il percorso MTU previsto per i pacchetti UDP che viaggiano verso il peer.

Per alcuni protocolli Weave questo verrà utilizzato per regolare dinamicamente le dimensioni del payload dei messaggi Weave.

Dettagli
Parametri
[in] aPathMTU
La MTU del percorso previsto per i pacchetti UDP che viaggiano verso il peer.
Restituisce
Un riferimento all'oggetto di associazione.

Transport_UDP_WRM

Configuration & Transport_UDP_WRM(
  void
)

Utilizza il protocollo Weave Reliable Messaging per la comunicazione con il peer.

Dettagli
Restituisce
Un riferimento all'oggetto di associazione.