nl::Weave::Binding::Configuration

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

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

Riepilogo

Quando si configura un'associazione, le applicazioni devono richiamare almeno un metodo da ciascuno dei seguenti gruppi di configurazione: destinazione, trasporto e sicurezza. Altri metodi possono essere richiamati in base alle esigenze 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 predefinito della risposta 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 i 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 i messaggi criptati utilizzando una chiave di sessione CASE stabilita con il nodo peer.
Security_EncryptionType(uint8_t aEncType)
Quando comunichi con il collega, invia e ricevi i messaggi criptati utilizzando il tipo di crittografia specificato per i messaggi.
Security_Key(uint32_t aKeyId)
Durante la comunicazione con il peer, invia e ricevi i messaggi criptati utilizzando una chiave specificata.
Security_None(void)
Quando comunichi con il peer, invia e ricevi messaggi non criptati (ad es.
Security_PASESession(uint8_t aPasswordSource)
Durante la comunicazione con il peer, invia e ricevi i messaggi criptati utilizzando una chiave di sessione PASE stabilita con il nodo peer.
Security_SharedCASESession(void)
Durante la comunicazione con il collega, invia e ricevi messaggi criptati utilizzando una chiave di sessione CASE condivisa stabilita con il router principale Nest.
Security_SharedCASESession(uint64_t aRouterNodeId)
Durante la comunicazione con il peer, invia e ricevi i 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 della struttura Weave derivato dall'ID nodo del peer e da una subnet specificata.
TargetAddress_WeaveService(void)
Durante la comunicazione con il peer, utilizza un indirizzo della struttura di servizi Weave derivato dall'ID nodo del peer.
Target_NodeId(uint64_t aPeerNodeId)
Configura l'associazione in modo che comunichi con un ID nodo Weave specifico.
Target_ServiceEndpoint(uint64_t aPeerNodeId)
Configura l'associazione per comunicare con un endpoint di 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)
Utilizza una connessione Weave esistente per comunicare con il peer.
Transport_TCP(void)
Utilizza TCP per comunicare con il peer.
Transport_UDP(void)
Utilizza UDP per comunicare con il peer.
Transport_UDP_PathMTU(uint32_t aPathMTU)
Imposta la MTU del percorso previsto per i pacchetti UDP che viaggiano verso il peer.
Transport_UDP_WRM(void)
Utilizza il protocollo Weave Reliable Messaging per comunicare con il tuo collega.

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 sul 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 come 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 predefinito della risposta 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 i messaggi criptati per un gruppo di applicazioni Weave specificato.

Dettagli
Parametri
[in] aAppGroupGlobalId
L'ID globale del gruppo di applicazioni per il quale i messaggi devono essere criptati.
[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 di 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 i 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
)

Quando comunichi con il collega, invia e ricevi i messaggi criptati utilizzando il tipo di crittografia specificato per i messaggi.

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 i 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
)

Quando comunichi con il peer, invia e ricevi messaggi non criptati (ad es.

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 i 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 della sessione PASE.
Restituisce
Un riferimento all'oggetto di associazione.

Security_SharedCASESession

Configuration & Security_SharedCASESession(
  void
)

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

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 i 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 la 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 durante 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. Questa stringa non deve essere terminata con NULL.
[in] aHostNameLen
La lunghezza della stringa indicata da aHostName.
[in] aPeerPort
Porta remota da utilizzare durante 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 della struttura Weave derivato dall'ID nodo del peer e da una subnet specificata.

Dettagli
Parametri
[in] aSubnetId
L'ID subnet da utilizzare per formare l'indirizzo della struttura Weave del peer.
Restituisce
Un riferimento all'oggetto di associazione.

TargetAddress_WeaveService

Configuration & TargetAddress_WeaveService(
  void
)

Durante la comunicazione con il peer, utilizza un indirizzo della struttura di servizi 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 in modo che comunichi 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 di servizio Weave specifico.

Se non viene configurato diversamente, l'indirizzo peer viene impostato sull'indirizzo della struttura di Weave dell'endpoint di servizio.

Dettagli
Parametri
[in] serviceEndpointId
L'ID nodo dell'endpoint di servizio con cui verrà effettuata 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
)

Utilizza una connessione Weave esistente per comunicare con il peer.

NOTA: il conteggio dei riferimenti sull'oggetto di connessione viene incrementato una volta completata la preparazione dell'associazione. Di conseguenza, 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 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 peer.

Dettagli
Restituisce
Un riferimento all'oggetto di associazione.

Transport_UDP_PathMTU

Configuration & Transport_UDP_PathMTU(
  uint32_t aPathMTU
)

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

Per alcuni protocolli Weave, questa opzione verrà utilizzata per regolare dinamicamente la dimensione del payload dei messaggi Weave.

Dettagli
Parametri
[in] aPathMTU
La MTU prevista 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 comunicare con il tuo collega.

Dettagli
Restituisce
Un riferimento all'oggetto di associazione.