基礎架構介面

這個模組包含相鄰基礎架構網路介面的平台抽象化機制。

摘要

函式

otPlatInfraIfDiscoverNat64Prefix(uint32_t aInfraIfIndex)
傳送要求,即可在 aInfraIfIndex 的基礎架構介面中探索 NAT64 前置字串。
otPlatInfraIfDiscoverNat64PrefixDone(otInstance *aInstance, uint32_t aInfraIfIndex, const otIp6Prefix *aIp6Prefix)
void
基礎架構介面驅動程式會呼叫此方法來通知 OpenThread,通知 NAT64 前置字串已完成。
otPlatInfraIfHasAddress(uint32_t aInfraIfIndex, const otIp6Address *aAddress)
bool
指出基礎架構介面是否已指派指定的 IPv6 位址。
otPlatInfraIfRecvIcmp6Nd(otInstance *aInstance, uint32_t aInfraIfIndex, const otIp6Address *aSrcAddress, const uint8_t *aBuffer, uint16_t aBufferLength)
void
基礎架構介面驅動程式會呼叫此方法來通知 OpenThread,瞭解收到 ICMPv6 Neighbor Discovery 訊息。
otPlatInfraIfSendIcmp6Nd(uint32_t aInfraIfIndex, const otIp6Address *aDestAddress, const uint8_t *aBuffer, uint16_t aBufferLength)
傳送特定基礎架構介面上的 ICMPv6 Neighbor Discovery 訊息。
otPlatInfraIfStateChanged(otInstance *aInstance, uint32_t aInfraIfIndex, bool aIsRunning)
基礎架構介面驅動程式會呼叫此方法,來通知 OpenThread 介面狀態變更。

函式

otPlatInfraIfDiscoverNat64Prefix

otError otPlatInfraIfDiscoverNat64Prefix(
  uint32_t aInfraIfIndex
)

傳送要求,即可在 aInfraIfIndex 的基礎架構介面中探索 NAT64 前置字串。

OpenThread 會定期呼叫此方法,監控 NAT64 前置字串是否存在或變更。

詳細說明
參數
[in] aInfraIfIndex
用於探索 NAT64 前置字串的基礎架構介面索引。
傳回值
OT_ERROR_NONE
已成功要求 NAT64 前置字串探索。
OT_ERROR_FAILED
無法要求進行 NAT64 前置字串探索。

otPlatInfraIfDiscoverNat64PrefixDone

void otPlatInfraIfDiscoverNat64PrefixDone(
  otInstance *aInstance,
  uint32_t aInfraIfIndex,
  const otIp6Prefix *aIp6Prefix
)

基礎架構介面驅動程式會呼叫此方法來通知 OpenThread,通知 NAT64 前置字串已完成。

呼叫 otPlatInfraIfDiscoverNat64Prefix 之後應叫用。如果找不到 NAT64 前置字串,aIp6Prefix 會指向長度為零的空白前置字串。

詳細說明
參數
[in] aInstance
OpenThread 執行個體結構。
[in] aInfraIfIndex
尋找 NAT64 前置字串的基礎架構介面索引。
[in] aIp6Prefix
指向 NAT64 前置字串的指標。

otPlatInfraIfHasAddress

bool otPlatInfraIfHasAddress(
  uint32_t aInfraIfIndex,
  const otIp6Address *aAddress
)

指出基礎架構介面是否已指派指定的 IPv6 位址。

詳細說明
參數
[in] aInfraIfIndex
基礎架構介面的索引。
[in] aAddress
IPv6 位址。
傳回
如果基礎架構介面已指定 IPv6 位址,則為 TRUE,否則為 FALSE。

otPlatInfraIfRecvIcmp6Nd

void otPlatInfraIfRecvIcmp6Nd(
  otInstance *aInstance,
  uint32_t aInfraIfIndex,
  const otIp6Address *aSrcAddress,
  const uint8_t *aBuffer,
  uint16_t aBufferLength
)

基礎架構介面驅動程式會呼叫此方法來通知 OpenThread,瞭解收到 ICMPv6 Neighbor Discovery 訊息。

請參閱 RFC 4861:https://tools.ietf.org/html/rfc4861

詳細說明
參數
[in] aInstance
OpenThread 執行個體結構。
[in] aInfraIfIndex
接收 ICMPv6 訊息的基礎架構介面索引。
[in] aSrcAddress
傳送這封郵件的來源地址。
[in] aBuffer
ICMPv6 訊息緩衝區。
[in] aBufferLength
ICMPv6 訊息緩衝區的長度。

otPlatInfraIfSendIcmp6Nd

otError otPlatInfraIfSendIcmp6Nd(
  uint32_t aInfraIfIndex,
  const otIp6Address *aDestAddress,
  const uint8_t *aBuffer,
  uint16_t aBufferLength
)

傳送特定基礎架構介面上的 ICMPv6 Neighbor Discovery 訊息。

請參閱 RFC 4861:https://tools.ietf.org/html/rfc4861

詳細說明
參數
[in] aInfraIfIndex
這則訊息所傳送至基礎架構介面的索引。
[in] aDestAddress
接收這則訊息的目的地地址。
[in] aBuffer
ICMPv6 訊息緩衝區。ICMPv6 總和檢查碼仍為零,且平台應會計算總和檢查碼。
[in] aBufferLength
訊息緩衝區的長度。
傳回值
OT_ERROR_NONE
已成功傳送 ICMPv6 訊息。
OT_ERROR_FAILED
無法傳送 ICMPv6 訊息。

otPlatInfraIfStateChanged

otError otPlatInfraIfStateChanged(
  otInstance *aInstance,
  uint32_t aInfraIfIndex,
  bool aIsRunning
)

基礎架構介面驅動程式會呼叫此方法,來通知 OpenThread 介面狀態變更。

即使介面的執行狀態沒有變更,平台也可以呼叫方法。在此情況下,轉送管理員的狀態不會受到影響。

詳細說明
參數
[in] aInstance
OpenThread 執行個體結構。
[in] aInfraIfIndex
基礎架構介面的索引。
[in] aIsRunning
布林值,指出基礎架構介面是否正在執行。
傳回值
OT_ERROR_NONE
已成功更新基礎架構介面狀態。
OT_ERROR_INVALID_STATE
轉送管理員未初始化。
OT_ERROR_INVALID_ARGS
aInfraIfIndex 與轉送管理員初始化時使用的基礎架構介面不符。

資源

OpenThread API 參考資料主題源自原始碼,請前往 GitHub 取得。如要瞭解詳情或對說明文件做出貢獻,請參閱資源