nl::Weave::Binding::Configuration

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

Binding オブジェクトを設定および準備するための宣言型インターフェースを提供します。

概要

アプリケーションは Binding を構成するときに、Target、Transport、Security の各構成グループから少なくとも 1 つのメソッドを呼び出す必要があります。デフォルトの動作をオーバーライドするために、他のメソッドを必要に応じて呼び出すこともできます。

相互に排他的な構成が呼び出される場合(例:Transport_TCP() の後に Transport_UDP() が続く)、最後に呼び出されたコンテナが優先されます。

パブリック関数

ConfigureFromMessage(const WeaveMessageInfo *aMsgInfo, const Inet::IPPacketInfo *aPacketInfo)
受信メッセージの送信者との通信を許可するようにバインディングを構成します。
DNS_Options(uint8_t dnsOptions)
ピアのホスト名を解決する場合は、指定された DNS オプションを使用します。
Exchange_ResponseTimeoutMsec(uint32_t aResponseTimeoutMsec)
この Binding オブジェクトから作成されたエクスチェンジ コンテキストのデフォルトのレスポンス タイムアウトを設定します。
GetError(void) const
Binding の構成中に発生したエラーを返します。
PrepareBinding(void)
ピアとの通信用に Binding を準備するプロセス。
Security_AppGroupKey(uint32_t aAppGroupGlobalId, uint32_t aRootKeyId, bool aUseRotatingKey)
ピアとの通信時に、指定した Weave アプリケーション グループ用に暗号化されたメッセージを送受信します。
Security_AuthenticationMode(WeaveAuthMode aAuthMode)
ピアの認証に使用する、リクエストされた認証モードを設定します。
Security_CASESession(void)
ピアとの通信では、ピアノードで確立された CASE セッション鍵を使用して暗号化されたメッセージを送受信します。
Security_EncryptionType(uint8_t aEncType)
ピアとの通信時に、指定したメッセージ暗号化タイプで暗号化されたメッセージを送受信します。
Security_Key(uint32_t aKeyId)
ピアとの通信時に、指定した鍵で暗号化されたメッセージを送受信します。
Security_None(void)
ピアとの通信では、暗号化されていない状態で送受信します(つまり、
Security_PASESession(uint8_t aPasswordSource)
ピアとの通信では、ピアノードで確立された PASE セッション鍵を使用して暗号化されたメッセージを送受信します。
Security_SharedCASESession(void)
ピアと通信する際は、Google Nest コアルーターで確立された共有 CASE セッションキーを使用して暗号化されたメッセージを送受信します。
Security_SharedCASESession(uint64_t aRouterNodeId)
ピアとの通信では、指定したルーターノードで確立された共有 CASE セッションキーを使用して暗号化されたメッセージを送受信します。
Security_TAKESession()
ピアとの通信では、ピアノードで確立された TAKE セッション鍵を使用して暗号化されたメッセージを送受信します。
TargetAddress_IP(nl::Inet::IPAddress aPeerAddress, uint16_t aPeerPort, InterfaceId aInterfaceId)
ピアと通信するときは、特定の IP アドレス、ポート、ネットワーク インターフェースを使用します。
TargetAddress_IP(const char *aHostName, uint16_t aPeerPort, InterfaceId aInterfaceId)
ピアと通信するときは、特定のホスト名、ポート、ネットワーク インターフェースを使用します。
TargetAddress_IP(const char *aHostName, size_t aHostNameLen, uint16_t aPeerPort, InterfaceId aInterfaceId)
ピアと通信するときは、特定のホスト名、ポート、ネットワーク インターフェースを使用します。
TargetAddress_WeaveFabric(uint16_t aSubnetId)
ピアと通信するときは、ピアのノード ID と指定したサブネットから派生した Weave ファブリック アドレスを使用します。
TargetAddress_WeaveService(void)
ピアと通信するときは、ピアのノード ID から取得した Weave サービス ファブリック アドレスを使用します。
Target_NodeId(uint64_t aPeerNodeId)
特定の Weave ノード ID と通信するようにバインディングを構成します。
Target_ServiceEndpoint(uint64_t aPeerNodeId)
特定の Weave サービス エンドポイントと通信するようにバインディングを構成します。
Transport_DefaultWRMPConfig(const WRMPConfig & aWRMPConfig)
この Binding オブジェクトから作成されたエクスチェンジ コンテキストのデフォルトの WRMP 構成を設定します。
Transport_ExistingConnection(WeaveConnection *apConnection)
既存の Weave 接続を使用してピアと通信します。
Transport_TCP(void)
TCP を使用してピアと通信します。
Transport_UDP(void)
UDP を使用してピアと通信します。
Transport_UDP_PathMTU(uint32_t aPathMTU)
ピアに送信される UDP パケットに想定されるパス MTU を設定します。
Transport_UDP_WRM(void)
ピアとの通信には Weave Reliable Messaging プロトコルを使用します。

パブリック関数

ConfigureFromMessage

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

受信メッセージの送信者との通信を許可するようにバインディングを構成します。

詳細
パラメータ
[in] aMsgInfo
受信メッセージに関連付けられたメッセージ情報構造。
[in] aPacketInfo
受信メッセージのパケット情報。

DNS_Options

Configuration & DNS_Options(
  uint8_t dnsOptions
)

ピアのホスト名を解決する場合は、指定された DNS オプションを使用します。

詳細
パラメータ
[in] dnsOptions
ホスト名の解決方法を制御する整数値。値は #::nl::Inet::DNSOptions 列挙型のいずれかの値にする必要があります。
戻り値
バインディング オブジェクトへの参照。

Exchange_ResponseTimeoutMsec

Configuration & Exchange_ResponseTimeoutMsec(
  uint32_t aResponseTimeoutMsec
)

この Binding オブジェクトから作成されたエクスチェンジ コンテキストのデフォルトのレスポンス タイムアウトを設定します。

詳細
パラメータ
[in] aResponseTimeoutMsec
デフォルトの応答時間(ミリ秒)。
戻り値
バインディング オブジェクトへの参照。

GetError

WEAVE_ERROR GetError(
  void
) const 

Binding の構成中に発生したエラーを返します。

PrepareBinding

WEAVE_ERROR PrepareBinding(
  void
)

ピアとの通信用に Binding を準備するプロセス。

Security_AppGroupKey

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

ピアとの通信時に、指定した Weave アプリケーション グループ用に暗号化されたメッセージを送受信します。

詳細
パラメータ
[in] aAppGroupGlobalId
メッセージを暗号化するアプリケーション グループのグローバル ID。
[in] aRootKeyId
指定した Weave アプリケーション グループの暗号鍵を導出するために使用されるルート鍵。
[in] aUseRotatingKey
Weave アプリケーション グループがローテーション メッセージ キーを使用している場合は true。
戻り値
Binding オブジェクトへの参照。

Security_AuthenticationMode

Configuration & Security_AuthenticationMode(
  WeaveAuthMode aAuthMode
)

ピアの認証に使用する、リクエストされた認証モードを設定します。

詳細
パラメータ
[in] aAuthMode
リクエストされた認証モード。
戻り値
Binding オブジェクトへの参照。

Security_CASESession

Configuration & Security_CASESession(
  void
)

ピアとの通信では、ピアノードで確立された CASE セッション鍵を使用して暗号化されたメッセージを送受信します。

必要なセッションを使用できない場合は、バインディングの準備の一環として自動的に確立されます。

詳細
戻り値
バインディング オブジェクトへの参照。

Security_EncryptionType

Configuration & Security_EncryptionType(
  uint8_t aEncType
)

ピアとの通信時に、指定したメッセージ暗号化タイプで暗号化されたメッセージを送受信します。

詳細
パラメータ
[in] aEncType
Weave メッセージ暗号化タイプ。
戻り値
Binding オブジェクトへの参照。

Security_Key

Configuration & Security_Key(
  uint32_t aKeyId
)

ピアとの通信時に、指定した鍵で暗号化されたメッセージを送受信します。

詳細
パラメータ
[in] aKeyId
暗号鍵の ID。指定した鍵は、Weave メッセージ暗号化に適したものである必要があります。
戻り値
Binding オブジェクトへの参照。

Security_None

Configuration & Security_None(
  void
)

ピアとの通信では、暗号化されていない状態で送受信します(つまり、

保護されません。

詳細
戻り値
バインディング オブジェクトへの参照。

Security_PASESession

Configuration & Security_PASESession(
  uint8_t aPasswordSource
)

ピアとの通信では、ピアノードで確立された PASE セッション鍵を使用して暗号化されたメッセージを送受信します。

必要なセッションを使用できない場合は、バインディングの準備の一環として自動的に確立されます。

詳細
パラメータ
[in] aPasswordSource
PASE セッションの確立時に使用されるパスワードのソース。
戻り値
バインディング オブジェクトへの参照。

Security_SharedCASESession

Configuration & Security_SharedCASESession(
  void
)

ピアと通信する際は、Google Nest コアルーターで確立された共有 CASE セッションキーを使用して暗号化されたメッセージを送受信します。

必要なセッションを使用できない場合は、バインディングの準備の一環として自動的に確立されます。

詳細
戻り値
バインディング オブジェクトへの参照。

Security_SharedCASESession

Configuration & Security_SharedCASESession(
  uint64_t aRouterNodeId
)

ピアとの通信では、指定したルーターノードで確立された共有 CASE セッションキーを使用して暗号化されたメッセージを送受信します。

必要なセッションを使用できない場合は、バインディングの準備の一環として自動的に確立されます。

詳細
パラメータ
[in] aRouterNodeId
ケースの共有セッションを確立するルーターの Weave ノード ID。
戻り値
バインディング オブジェクトへの参照。

Security_TAKESession

Configuration & Security_TAKESession()

ピアとの通信では、ピアノードで確立された TAKE セッション鍵を使用して暗号化されたメッセージを送受信します。

必要なセッションを使用できない場合は、バインディングの準備の一環として自動的に確立されます。

詳細
戻り値
バインディング オブジェクトへの参照。

TargetAddress_IP

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

ピアと通信するときは、特定の IP アドレス、ポート、ネットワーク インターフェースを使用します。

詳細
パラメータ
[in] aPeerAddress
ピアの IP アドレス
[in] aPeerPort
リモートポート
[in] aInterfaceId
通信に使用するローカル ネットワーク インターフェースの ID
戻り値
バインディング オブジェクトへの参照。

TargetAddress_IP

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

ピアと通信するときは、特定のホスト名、ポート、ネットワーク インターフェースを使用します。

注: 呼び出し元は、バインディング準備フェーズが完了するまで、指定されたホスト名の文字列が有効なままであることを確認する必要があります。

詳細
パラメータ
[in] aHostName
ピアのホスト名を含む NULL 終端の文字列。
[in] aPeerPort
ピアとの通信時に使用するリモートポート。
[in] aInterfaceId
通信に使用するローカル ネットワーク インターフェースの ID。
戻り値
バインディング オブジェクトへの参照。

TargetAddress_IP

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

ピアと通信するときは、特定のホスト名、ポート、ネットワーク インターフェースを使用します。

注: 呼び出し元は、バインディング準備フェーズが完了するまで、指定されたホスト名の文字列が有効なままであることを確認する必要があります。

詳細
パラメータ
[in] aHostName
ピアのホスト名を含む文字列。この文字列を NULL 終端する必要はありません。
[in] aHostNameLen
aHostName が指す文字列の長さ。
[in] aPeerPort
ピアとの通信時に使用するリモートポート。
[in] aInterfaceId
通信に使用するローカル ネットワーク インターフェースの ID。
戻り値
バインディング オブジェクトへの参照。

TargetAddress_WeaveFabric

Configuration & TargetAddress_WeaveFabric(
  uint16_t aSubnetId
)

ピアと通信するときは、ピアのノード ID と指定したサブネットから派生した Weave ファブリック アドレスを使用します。

詳細
パラメータ
[in] aSubnetId
ピアの Weave ファブリック アドレスの形成に使用されるサブネット ID。
戻り値
バインディング オブジェクトへの参照。

TargetAddress_WeaveService

Configuration & TargetAddress_WeaveService(
  void
)

ピアと通信するときは、ピアのノード ID から取得した Weave サービス ファブリック アドレスを使用します。

詳細
戻り値
バインディング オブジェクトへの参照。

Target_NodeId

Configuration & Target_NodeId(
  uint64_t aPeerNodeId
)

特定の Weave ノード ID と通信するようにバインディングを構成します。

詳細
パラメータ
[in] aPeerNodeId
ピアノードのノード ID。
戻り値
バインディング オブジェクトへの参照。

Target_ServiceEndpoint

Configuration & Target_ServiceEndpoint(
  uint64_t aPeerNodeId
)

特定の Weave サービス エンドポイントと通信するようにバインディングを構成します。

それ以外の場合、ピアアドレスはサービス エンドポイントの Weave ファブリック アドレスに設定されます。

詳細
パラメータ
[in] serviceEndpointId
通信が行われるサービス エンドポイントのノード ID。
戻り値
バインディング オブジェクトへの参照。

Transport_DefaultWRMPConfig

Configuration & Transport_DefaultWRMPConfig(
  const WRMPConfig & aWRMPConfig
)

この Binding オブジェクトから作成されたエクスチェンジ コンテキストのデフォルトの WRMP 構成を設定します。

詳細
パラメータ
[in] aWRMPConfig
新しいデフォルトの WRMP 設定への参照。
戻り値
バインディング オブジェクトへの参照。

Transport_ExistingConnection

Configuration & Transport_ExistingConnection(
  WeaveConnection *apConnection
)

既存の Weave 接続を使用してピアと通信します。

注: 接続オブジェクトの参照カウントは、バインディングの準備が成功すると増加します。したがって、アプリケーションはその時点まで接続オブジェクトが存続するようにする必要があります。

詳細
パラメータ
[in] con
既存の Weave 接続へのポインタ。
戻り値
バインディング オブジェクトへの参照。

Transport_TCP

Configuration & Transport_TCP(
  void
)

TCP を使用してピアと通信します。

詳細
戻り値
バインディング オブジェクトへの参照。

Transport_UDP

Configuration & Transport_UDP(
  void
)

UDP を使用してピアと通信します。

詳細
戻り値
バインディング オブジェクトへの参照。

Transport_UDP_PathMTU

Configuration & Transport_UDP_PathMTU(
  uint32_t aPathMTU
)

ピアに送信される UDP パケットに想定されるパス MTU を設定します。

一部の Weave プロトコルでは、このフィールドを使用して、Weave メッセージのペイロード サイズを動的に調整します。

詳細
パラメータ
[in] aPathMTU
ピアに送信される UDP パケットで想定されるパス MTU。
戻り値
バインディング オブジェクトへの参照。

Transport_UDP_WRM

Configuration & Transport_UDP_WRM(
  void
)

ピアとの通信には Weave Reliable Messaging プロトコルを使用します。

詳細
戻り値
バインディング オブジェクトへの参照。