nl::Weave::Binding::Configuration

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

Stellt eine Schnittstelle zum deklarativen Stil zum Konfigurieren und Vorbereiten eines Binding-Objekts bereit.

Zusammenfassung

Beim Konfigurieren einer Binding müssen Anwendungen mindestens eine Methode aus jeder der folgenden Konfigurationsgruppen aufrufen: Ziel, Transport und Sicherheit. Bei Bedarf können andere Methoden aufgerufen werden, um das Standardverhalten zu überschreiben.

Wenn sich gegenseitig ausschließende Konfigurationen (z.B. Transport_TCP() gefolgt von Transport_UDP()), wobei die letzte aufgerufene Instanz gewinnt.

Öffentliche Funktionen

ConfigureFromMessage(const WeaveMessageInfo *aMsgInfo, const Inet::IPPacketInfo *aPacketInfo)
Konfigurieren Sie die Bindung so, dass die Kommunikation mit dem Absender einer empfangenen Nachricht zugelassen wird.
DNS_Options(uint8_t dnsOptions)
Verwenden Sie beim Zuordnen des Hostnamens des Peers die angegebenen DNS-Optionen.
Exchange_ResponseTimeoutMsec(uint32_t aResponseTimeoutMsec)
Legen Sie das Standardantwortzeitlimit für Austauschkontexte fest, die aus diesem Binding-Objekt erstellt wurden.
GetError(void) const
Gibt alle Fehler zurück, die beim Konfigurieren der Binding aufgetreten sind.
PrepareBinding(void)
Der Prozess zum Vorbereiten der Binding für die Kommunikation mit dem Peer.
Security_AppGroupKey(uint32_t aAppGroupGlobalId, uint32_t aRootKeyId, bool aUseRotatingKey)
Senden und empfangen Sie bei der Kommunikation mit dem Peer Nachrichten, die für eine bestimmte Weave-Anwendungsgruppe verschlüsselt sind.
Security_AuthenticationMode(WeaveAuthMode aAuthMode)
Legen Sie den angeforderten Authentifizierungsmodus fest, der zur Authentifizierung des Peers verwendet werden soll.
Security_CASESession(void)
Senden und empfangen Sie bei der Kommunikation mit dem Peer Nachrichten, die mit einem CASE-Sitzungsschlüssel verschlüsselt sind, der mit dem Peer-Knoten erstellt wurde.
Security_EncryptionType(uint8_t aEncType)
Senden und empfangen Sie bei der Kommunikation mit dem Peer Nachrichten, die mit dem angegebenen Nachrichtenverschlüsselungstyp verschlüsselt sind.
Security_Key(uint32_t aKeyId)
Senden und empfangen Sie bei der Kommunikation mit dem Peer Nachrichten, die mit einem bestimmten Schlüssel verschlüsselt sind.
Security_None(void)
Senden und empfangen Sie bei der Kommunikation mit dem Peer unverschlüsselt (d.h.
Security_PASESession(uint8_t aPasswordSource)
Senden und empfangen Sie bei der Kommunikation mit dem Peer Nachrichten, die mit einem mit dem Peer-Knoten erstellten PASE-Sitzungsschlüssel verschlüsselt wurden.
Security_SharedCASESession(void)
Senden und empfangen Sie bei der Kommunikation mit dem Peer Nachrichten, die mit einem gemeinsamen CASE-Sitzungsschlüssel verschlüsselt sind, der mit dem Nest Core-Router erstellt wurde.
Security_SharedCASESession(uint64_t aRouterNodeId)
Bei der Kommunikation mit dem Peer können Nachrichten gesendet und empfangen werden, die mit einem freigegebenen CASE-Sitzungsschlüssel, der mit einem bestimmten Routerknoten eingerichtet wurde, verschlüsselt sind.
Security_TAKESession()
Senden und empfangen Sie bei der Kommunikation mit dem Peer Nachrichten, die mit einem TAKE-Sitzungsschlüssel verschlüsselt sind, der mit dem Peer-Knoten erstellt wurde.
TargetAddress_IP(nl::Inet::IPAddress aPeerAddress, uint16_t aPeerPort, InterfaceId aInterfaceId)
Verwenden Sie bei der Kommunikation mit dem Peer die spezifische IP-Adresse, den Port und die Netzwerkschnittstelle.
TargetAddress_IP(const char *aHostName, uint16_t aPeerPort, InterfaceId aInterfaceId)
Verwenden Sie bei der Kommunikation mit dem Peer den spezifischen Hostnamen, den Port und die Netzwerkschnittstelle.
TargetAddress_IP(const char *aHostName, size_t aHostNameLen, uint16_t aPeerPort, InterfaceId aInterfaceId)
Verwenden Sie bei der Kommunikation mit dem Peer den spezifischen Hostnamen, den Port und die Netzwerkschnittstelle.
TargetAddress_WeaveFabric(uint16_t aSubnetId)
Verwenden Sie bei der Kommunikation mit dem Peer eine Weave-Fabric-Adresse, die von der Knoten-ID des Peers und einem angegebenen Subnetz abgeleitet wird.
TargetAddress_WeaveService(void)
Verwenden Sie bei der Kommunikation mit dem Peer eine Weave-Dienststrukturadresse, die von der Knoten-ID des Peers abgeleitet wird.
Target_NodeId(uint64_t aPeerNodeId)
Konfigurieren Sie die Bindung so, dass sie mit einer bestimmten Weave-Knoten-ID kommuniziert.
Target_ServiceEndpoint(uint64_t aPeerNodeId)
Konfigurieren Sie die Bindung für die Kommunikation mit einem bestimmten Weave-Dienstendpunkt.
Transport_DefaultWRMPConfig(const WRMPConfig & aWRMPConfig)
Legen Sie die WRMP-Standardkonfiguration für Austauschkontexte fest, die aus diesem Binding-Objekt erstellt wurden.
Transport_ExistingConnection(WeaveConnection *apConnection)
Verwenden Sie eine vorhandene Weave-Verbindung, um mit dem Peer zu kommunizieren.
Transport_TCP(void)
Verwenden Sie TCP, um mit dem Peer zu kommunizieren.
Transport_UDP(void)
Verwenden Sie UDP, um mit dem Peer zu kommunizieren.
Transport_UDP_PathMTU(uint32_t aPathMTU)
Legen Sie die erwartete Pfad-MTU für UDP-Pakete fest, die zum Peer übertragen werden.
Transport_UDP_WRM(void)
Verwenden Sie bei der Kommunikation mit dem Peer das Weave Reliable Messaging-Protokoll.

Öffentliche Funktionen

ConfigureFromMessage

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

Konfigurieren Sie die Bindung so, dass die Kommunikation mit dem Absender einer empfangenen Nachricht zugelassen wird.

Details
Parameter
[in] aMsgInfo
Struktur der mit der empfangenen Nachricht verknüpften Nachrichteninformationsstruktur.
[in] aPacketInfo
Paketinformationen für die empfangene Nachricht.

DNS_Options

Configuration & DNS_Options(
  uint8_t dnsOptions
)

Verwenden Sie beim Zuordnen des Hostnamens des Peers die angegebenen DNS-Optionen.

Details
Parameter
[in] dnsOptions
Ein Ganzzahlwert, der steuert, wie die Auflösung des Hostnamens durchgeführt wird. Der Wert muss einer der Werte aus der Aufzählung #::nl::Inet::DNSOptions sein.
Rückgabe
Ein Verweis auf das Binding-Objekt.

Exchange_ResponseTimeoutMsec

Configuration & Exchange_ResponseTimeoutMsec(
  uint32_t aResponseTimeoutMsec
)

Legen Sie das Standardantwortzeitlimit für Austauschkontexte fest, die aus diesem Binding-Objekt erstellt wurden.

Details
Parameter
[in] aResponseTimeoutMsec
Die Standardantwortzeit in ms.
Rückgabe
Ein Verweis auf das Binding-Objekt.

GetError

WEAVE_ERROR GetError(
  void
) const 

Gibt alle Fehler zurück, die beim Konfigurieren der Binding aufgetreten sind.

PrepareBinding

WEAVE_ERROR PrepareBinding(
  void
)

Der Prozess zum Vorbereiten der Binding für die Kommunikation mit dem Peer.

Security_AppGroupKey

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

Senden und empfangen Sie bei der Kommunikation mit dem Peer Nachrichten, die für eine bestimmte Weave-Anwendungsgruppe verschlüsselt sind.

Details
Parameter
[in] aAppGroupGlobalId
Die globale ID der Anwendungsgruppe, für die Nachrichten verschlüsselt werden sollen.
[in] aRootKeyId
Der Stammschlüssel, der zum Ableiten von Verschlüsselungsschlüsseln für die angegebene Weave-Anwendungsgruppe verwendet wird.
[in] aUseRotatingKey
"True", wenn die Weave Application Group rotierende Nachrichtenschlüssel verwendet.
Rückgabe
Ein Verweis auf das Objekt Binding.

Security_AuthenticationMode

Configuration & Security_AuthenticationMode(
  WeaveAuthMode aAuthMode
)

Legen Sie den angeforderten Authentifizierungsmodus fest, der zur Authentifizierung des Peers verwendet werden soll.

Details
Parameter
[in] aAuthMode
Der angeforderte Authentifizierungsmodus.
Rückgabe
Ein Verweis auf das Objekt Binding.

Security_CASESession

Configuration & Security_CASESession(
  void
)

Senden und empfangen Sie bei der Kommunikation mit dem Peer Nachrichten, die mit einem CASE-Sitzungsschlüssel verschlüsselt sind, der mit dem Peer-Knoten erstellt wurde.

Wenn die erforderliche Sitzung nicht verfügbar ist, wird sie bei der Vorbereitung der Bindung automatisch erstellt.

Details
Rückgabe
Ein Verweis auf das Binding-Objekt.

Security_EncryptionType

Configuration & Security_EncryptionType(
  uint8_t aEncType
)

Senden und empfangen Sie bei der Kommunikation mit dem Peer Nachrichten, die mit dem angegebenen Nachrichtenverschlüsselungstyp verschlüsselt sind.

Details
Parameter
[in] aEncType
Der Verschlüsselungstyp von Weave-Nachrichten.
Rückgabe
Ein Verweis auf das Objekt Binding.

Security_Key

Configuration & Security_Key(
  uint32_t aKeyId
)

Senden und empfangen Sie bei der Kommunikation mit dem Peer Nachrichten, die mit einem bestimmten Schlüssel verschlüsselt sind.

Details
Parameter
[in] aKeyId
Die ID des Verschlüsselungsschlüssels. Der angegebene Schlüssel muss für die Weave-Nachrichtenverschlüsselung geeignet sein.
Rückgabe
Ein Verweis auf das Objekt Binding.

Security_None

Configuration & Security_None(
  void
)

Senden und empfangen Sie bei der Kommunikation mit dem Peer unverschlüsselt (d.h.

ungesicherten Nachrichten angezeigt.

Details
Rückgabe
Ein Verweis auf das Binding-Objekt.

Security_PASESession

Configuration & Security_PASESession(
  uint8_t aPasswordSource
)

Senden und empfangen Sie bei der Kommunikation mit dem Peer Nachrichten, die mit einem mit dem Peer-Knoten erstellten PASE-Sitzungsschlüssel verschlüsselt wurden.

Wenn die erforderliche Sitzung nicht verfügbar ist, wird sie bei der Vorbereitung der Bindung automatisch erstellt.

Details
Parameter
[in] aPasswordSource
Die Quelle für das Passwort, das beim Einrichten einer PASE-Sitzung verwendet werden soll.
Rückgabe
Ein Verweis auf das Binding-Objekt.

Security_SharedCASESession

Configuration & Security_SharedCASESession(
  void
)

Senden und empfangen Sie bei der Kommunikation mit dem Peer Nachrichten, die mit einem gemeinsamen CASE-Sitzungsschlüssel verschlüsselt sind, der mit dem Nest Core-Router erstellt wurde.

Wenn die erforderliche Sitzung nicht verfügbar ist, wird sie bei der Vorbereitung der Bindung automatisch erstellt.

Details
Rückgabe
Ein Verweis auf das Binding-Objekt.

Security_SharedCASESession

Configuration & Security_SharedCASESession(
  uint64_t aRouterNodeId
)

Bei der Kommunikation mit dem Peer können Nachrichten gesendet und empfangen werden, die mit einem freigegebenen CASE-Sitzungsschlüssel, der mit einem bestimmten Routerknoten eingerichtet wurde, verschlüsselt sind.

Wenn die erforderliche Sitzung nicht verfügbar ist, wird sie bei der Vorbereitung der Bindung automatisch erstellt.

Details
Parameter
[in] aRouterNodeId
Die Weave-Knoten-ID des Routers, mit dem eine freigegebene CASE-Sitzung erstellt werden soll.
Rückgabe
Ein Verweis auf das Binding-Objekt.

Security_TAKESession

Configuration & Security_TAKESession()

Senden und empfangen Sie bei der Kommunikation mit dem Peer Nachrichten, die mit einem TAKE-Sitzungsschlüssel verschlüsselt sind, der mit dem Peer-Knoten erstellt wurde.

Wenn die erforderliche Sitzung nicht verfügbar ist, wird sie bei der Vorbereitung der Bindung automatisch erstellt.

Details
Rückgabe
Ein Verweis auf das Binding-Objekt.

TargetAddress_IP

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

Verwenden Sie bei der Kommunikation mit dem Peer die spezifische IP-Adresse, den Port und die Netzwerkschnittstelle.

Details
Parameter
[in] aPeerAddress
IP-Adresse für den Peer
[in] aPeerPort
Remote-Port
[in] aInterfaceId
Die ID der lokalen Netzwerkschnittstelle, die für die Kommunikation verwendet werden soll
Rückgabe
Ein Verweis auf das Binding-Objekt.

TargetAddress_IP

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

Verwenden Sie bei der Kommunikation mit dem Peer den spezifischen Hostnamen, den Port und die Netzwerkschnittstelle.

HINWEIS: Der Aufrufer muss dafür sorgen, dass der angegebene String für den Hostnamen gültig bleibt, bis die Phase zur Bindungsvorbereitung abgeschlossen ist.

Details
Parameter
[in] aHostName
Ein mit NULL beendeter String, der den Hostnamen des Peers enthält.
[in] aPeerPort
Remote-Port für die Kommunikation mit dem Peer.
[in] aInterfaceId
Die ID der lokalen Netzwerkschnittstelle, die für die Kommunikation verwendet werden soll.
Rückgabe
Ein Verweis auf das Binding-Objekt.

TargetAddress_IP

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

Verwenden Sie bei der Kommunikation mit dem Peer den spezifischen Hostnamen, den Port und die Netzwerkschnittstelle.

HINWEIS: Der Aufrufer muss dafür sorgen, dass der angegebene String für den Hostnamen gültig bleibt, bis die Phase zur Bindungsvorbereitung abgeschlossen ist.

Details
Parameter
[in] aHostName
Ein String, der den Hostnamen des Peers enthält. Dieser String muss nicht mit NULL beendet werden.
[in] aHostNameLen
Die Länge der Zeichenfolge, auf die aHostName verweist.
[in] aPeerPort
Remote-Port für die Kommunikation mit dem Peer.
[in] aInterfaceId
Die ID der lokalen Netzwerkschnittstelle, die für die Kommunikation verwendet werden soll.
Rückgabe
Ein Verweis auf das Binding-Objekt.

TargetAddress_WeaveFabric

Configuration & TargetAddress_WeaveFabric(
  uint16_t aSubnetId
)

Verwenden Sie bei der Kommunikation mit dem Peer eine Weave-Fabric-Adresse, die von der Knoten-ID des Peers und einem angegebenen Subnetz abgeleitet wird.

Details
Parameter
[in] aSubnetId
Die Subnetz-ID, die zum Erstellen der Weave-Fabric-Adresse des Peers verwendet werden soll.
Rückgabe
Ein Verweis auf das Binding-Objekt.

TargetAddress_WeaveService

Configuration & TargetAddress_WeaveService(
  void
)

Verwenden Sie bei der Kommunikation mit dem Peer eine Weave-Dienststrukturadresse, die von der Knoten-ID des Peers abgeleitet wird.

Details
Rückgabe
Ein Verweis auf das Binding-Objekt.

Target_NodeId

Configuration & Target_NodeId(
  uint64_t aPeerNodeId
)

Konfigurieren Sie die Bindung so, dass sie mit einer bestimmten Weave-Knoten-ID kommuniziert.

Details
Parameter
[in] aPeerNodeId
Knoten-ID des Peer-Knotens.
Rückgabe
Ein Verweis auf das Binding-Objekt.

Target_ServiceEndpoint

Configuration & Target_ServiceEndpoint(
  uint64_t aPeerNodeId
)

Konfigurieren Sie die Bindung für die Kommunikation mit einem bestimmten Weave-Dienstendpunkt.

Sofern nicht anders konfiguriert, wird die Peer-Adresse auf die Weave-Fabric-Adresse des Dienstendpunkts festgelegt.

Details
Parameter
[in] serviceEndpointId
Die Knoten-ID des Dienstendpunkts, mit dem die Kommunikation stattfindet.
Rückgabe
Ein Verweis auf das Binding-Objekt.

Transport_DefaultWRMPConfig

Configuration & Transport_DefaultWRMPConfig(
  const WRMPConfig & aWRMPConfig
)

Legen Sie die WRMP-Standardkonfiguration für Austauschkontexte fest, die aus diesem Binding-Objekt erstellt wurden.

Details
Parameter
[in] aWRMPConfig
Ein Verweis auf die neue WRMP-Standardkonfiguration.
Rückgabe
Ein Verweis auf das Binding-Objekt.

Transport_ExistingConnection

Configuration & Transport_ExistingConnection(
  WeaveConnection *apConnection
)

Verwenden Sie eine vorhandene Weave-Verbindung, um mit dem Peer zu kommunizieren.

HINWEIS: Die Anzahl der Verweise auf das Verbindungsobjekt erhöht sich, wenn die Bindungsvorbereitung erfolgreich ist. Daher ist die Anwendung dafür verantwortlich, dass das Verbindungsobjekt bis zu diesem Zeitpunkt aktiv bleibt.

Details
Parameter
[in] con
Ein Zeiger auf die vorhandene Weave-Verbindung.
Rückgabe
Ein Verweis auf das Binding-Objekt.

Transport_TCP

Configuration & Transport_TCP(
  void
)

Verwenden Sie TCP, um mit dem Peer zu kommunizieren.

Details
Rückgabe
Ein Verweis auf das Binding-Objekt.

Transport_UDP

Configuration & Transport_UDP(
  void
)

Verwenden Sie UDP, um mit dem Peer zu kommunizieren.

Details
Rückgabe
Ein Verweis auf das Binding-Objekt.

Transport_UDP_PathMTU

Configuration & Transport_UDP_PathMTU(
  uint32_t aPathMTU
)

Legen Sie die erwartete Pfad-MTU für UDP-Pakete fest, die zum Peer übertragen werden.

Bei einigen Weave-Protokollen wird dies verwendet, um die Nutzlastgröße der Weave-Nachricht dynamisch anzupassen.

Details
Parameter
[in] aPathMTU
Die erwartete Pfad-MTU für UDP-Pakete, die zum Peer übertragen werden.
Rückgabe
Ein Verweis auf das Binding-Objekt.

Transport_UDP_WRM

Configuration & Transport_UDP_WRM(
  void
)

Verwenden Sie bei der Kommunikation mit dem Peer das Weave Reliable Messaging-Protokoll.

Details
Rückgabe
Ein Verweis auf das Binding-Objekt.