nl::Weave::Binding::Configuration

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

提供宣告式介面,用於設定及準備 Binding 物件。

摘要

設定繫結時,應用程式至少必須從下列配置群組中呼叫一種方法:目標、傳輸和安全性。視需要呼叫其他方法以覆寫預設行為。

如果叫用互斥的設定 (例如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
傳回設定繫結時發生的任何錯誤。
PrepareBinding(void)
準備與對等點通訊的繫結程序。
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)
與對等點通訊時,使用與 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 

傳回設定繫結時發生的任何錯誤。

PrepareBinding

WEAVE_ERROR PrepareBinding(
  void
)

準備與對等點通訊的繫結程序。

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
)

與對等點通訊時,使用與 Nest 核心路由器建立共用的 CASE 工作階段金鑰來收發訊息。

如果無法使用必要的工作階段,系統會自動在準備繫結時建立工作階段。

詳細說明
傳回
繫結物件的參照。

Security_SharedCASESession

Configuration & Security_SharedCASESession(
  uint64_t aRouterNodeId
)

與對等點通訊時,使用透過指定路由器節點建立的共用 CASE 工作階段金鑰,收發加密的訊息。

如果無法使用必要的工作階段,系統會自動在準備繫結時建立工作階段。

詳細說明
參數
[in] aRouterNodeId
應建立共用 CASE 工作階段的路由器的 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 通訊協定。

詳細說明
傳回
繫結物件的參照。