nl::Weave::Binding::Configuration

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

Bietet eine deklarative Schnittstelle zum Konfigurieren und Vorbereiten eines Binding-Objekts.

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 aufgerufen werden (z.B. Transport_TCP() gefolgt von Transport_UDP()), wobei der letzte aufgerufene Wert 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 Auflösen des Hostnamens des Peers die angegebenen DNS-Optionen.
Exchange_ResponseTimeoutMsec(uint32_t aResponseTimeoutMsec)
Legen Sie das Standardzeitlimit für Antworten für Austauschkontexte fest, die mit diesem Binding-Objekt erstellt wurden.
GetError(void) const
Gibt alle Fehler zurück, die beim Konfigurieren der Binding aufgetreten sind.
PrepareBinding(void)
Der Prozess der Vorbereitung der Binding für die Kommunikation mit dem Peer.
Security_AppGroupKey(uint32_t aAppGroupGlobalId, uint32_t aRootKeyId, bool aUseRotatingKey)
Bei der Kommunikation mit dem Peer Nachrichten senden und empfangen, 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)
Bei der Kommunikation mit dem Peer können Sie Nachrichten senden und empfangen, die mit einem CASE-Sitzungsschlüssel verschlüsselt wurden, der mit dem Peer-Knoten eingerichtet 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)
Bei der Kommunikation mit dem Peer Nachrichten senden und empfangen, die mit einem mit dem Peer-Knoten erstellten PASE-Sitzungsschlüssel verschlüsselt sind.
Security_SharedCASESession(void)
Bei der Kommunikation mit dem Peer können Sie Nachrichten senden und empfangen, die mit einem freigegebenen CASE-Sitzungsschlüssel verschlüsselt wurden, der mit dem Nest Core-Router eingerichtet wurde.
Security_SharedCASESession(uint64_t aRouterNodeId)
Bei der Kommunikation mit dem Peer können Sie Nachrichten senden und empfangen, die mit einem freigegebenen CASE-Sitzungsschlüssel verschlüsselt wurden, der mit einem bestimmten Routerknoten eingerichtet wurde.
Security_TAKESession()
Bei der Kommunikation mit dem Peer sollten Sie Nachrichten senden und empfangen, die mit einem mit dem Peer-Knoten erstellten TAKE-Sitzungsschlüssel verschlüsselt sind.
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 ist.
Target_NodeId(uint64_t aPeerNodeId)
Konfigurieren Sie die Bindung für die Kommunikation mit einer bestimmten Weave-Knoten-ID.
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 für die Kommunikation mit dem Peer das Weave Zuverlässig 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
Mit der empfangenen Nachricht verknüpfte Nachrichteninformationsstruktur.
[in] aPacketInfo
Paketinformationen für die empfangene Nachricht.

DNS_Options

Configuration & DNS_Options(
  uint8_t dnsOptions
)

Verwenden Sie beim Auflösen des Hostnamens des Peers die angegebenen DNS-Optionen.

Details
Parameter
[in] dnsOptions
Ein ganzzahliger Wert, der steuert, wie die Auflösung von Hostnamen durchgeführt wird. Wert muss einer der Werte aus der Aufzählung #::nl::Inet::DNSOptions sein.
Rückgabe
Ein Verweis auf das Bindungsobjekt.

Exchange_ResponseTimeoutMsec

Configuration & Exchange_ResponseTimeoutMsec(
  uint32_t aResponseTimeoutMsec
)

Legen Sie das Standardzeitlimit für Antworten für Austauschkontexte fest, die mit diesem Binding-Objekt erstellt wurden.

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

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 der Vorbereitung der Binding für die Kommunikation mit dem Peer.

Security_AppGroupKey

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

Bei der Kommunikation mit dem Peer Nachrichten senden und empfangen, 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 der Verschlüsselungsschlüssel für die angegebene Weave-Anwendungsgruppe verwendet wird.
[in] aUseRotatingKey
„True“, wenn die Weave-Anwendungsgruppe 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
)

Bei der Kommunikation mit dem Peer können Sie Nachrichten senden und empfangen, die mit einem CASE-Sitzungsschlüssel verschlüsselt wurden, der mit dem Peer-Knoten eingerichtet wurde.

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

Details
Rückgabe
Ein Verweis auf das Bindungsobjekt.

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 Nachrichtenverschlüsselungstyp Weave.
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.

ungesicherte) Nachrichten zu senden.

Details
Rückgabe
Ein Verweis auf das Bindungsobjekt.

Security_PASESession

Configuration & Security_PASESession(
  uint8_t aPasswordSource
)

Bei der Kommunikation mit dem Peer Nachrichten senden und empfangen, die mit einem mit dem Peer-Knoten erstellten PASE-Sitzungsschlüssel verschlüsselt sind.

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

Details
Parameter
[in] aPasswordSource
Die Quelle für das Passwort, das beim Einrichten der PASE-Sitzung verwendet wird.
Rückgabe
Ein Verweis auf das Bindungsobjekt.

Security_SharedCASESession

Configuration & Security_SharedCASESession(
  void
)

Bei der Kommunikation mit dem Peer können Sie Nachrichten senden und empfangen, die mit einem freigegebenen CASE-Sitzungsschlüssel verschlüsselt wurden, der mit dem Nest Core-Router eingerichtet wurde.

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

Details
Rückgabe
Ein Verweis auf das Bindungsobjekt.

Security_SharedCASESession

Configuration & Security_SharedCASESession(
  uint64_t aRouterNodeId
)

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

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

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

Security_TAKESession

Configuration & Security_TAKESession()

Bei der Kommunikation mit dem Peer sollten Sie Nachrichten senden und empfangen, die mit einem mit dem Peer-Knoten erstellten TAKE-Sitzungsschlüssel verschlüsselt sind.

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

Details
Rückgabe
Ein Verweis auf das Bindungsobjekt.

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 Bindungsobjekt.

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 sicherstellen, dass der angegebene Hostnamen-String gültig bleibt, bis die Bindungsvorbereitungsphase abgeschlossen ist.

Details
Parameter
[in] aHostName
Ein NULL-terminierter 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 Bindungsobjekt.

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 sicherstellen, dass der angegebene Hostnamen-String gültig bleibt, bis die Bindungsvorbereitungsphase abgeschlossen ist.

Details
Parameter
[in] aHostName
Ein String, der den Hostnamen des Peers enthält. Dieser String muss nicht über NULL beendet werden.
[in] aHostNameLen
Die Länge des Strings, auf den 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 Bindungsobjekt.

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 Bindungsobjekt.

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 ist.

Details
Rückgabe
Ein Verweis auf das Bindungsobjekt.

Target_NodeId

Configuration & Target_NodeId(
  uint64_t aPeerNodeId
)

Konfigurieren Sie die Bindung für die Kommunikation mit einer bestimmten Weave-Knoten-ID.

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

Target_ServiceEndpoint

Configuration & Target_ServiceEndpoint(
  uint64_t aPeerNodeId
)

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

Wenn 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 Bindungsobjekt.

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 Bindungsobjekt.

Transport_ExistingConnection

Configuration & Transport_ExistingConnection(
  WeaveConnection *apConnection
)

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

HINWEIS: Die Referenzanzahl für das Verbindungsobjekt wird erhöht, wenn die Bindungsvorbereitung erfolgreich war. Daher muss die Anwendung sicherstellen, 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 Bindungsobjekt.

Transport_TCP

Configuration & Transport_TCP(
  void
)

Verwenden Sie TCP, um mit dem Peer zu kommunizieren.

Details
Rückgabe
Ein Verweis auf das Bindungsobjekt.

Transport_UDP

Configuration & Transport_UDP(
  void
)

Verwenden Sie UDP, um mit dem Peer zu kommunizieren.

Details
Rückgabe
Ein Verweis auf das Bindungsobjekt.

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 Größe der Weave-Nachrichtennutzlast 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 Bindungsobjekt.

Transport_UDP_WRM

Configuration & Transport_UDP_WRM(
  void
)

Verwenden Sie für die Kommunikation mit dem Peer das Weave Zuverlässig Messaging-Protokoll.

Details
Rückgabe
Ein Verweis auf das Bindungsobjekt.