基础架构接口

此模块包含相邻基础架构网络接口的平台抽象。

摘要

函数

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 邻近发现消息。
otPlatInfraIfSendIcmp6Nd(uint32_t aInfraIfIndex, const otIp6Address *aDestAddress, const uint8_t *aBuffer, uint16_t aBufferLength)
在给定基础架构接口上发送 ICMPv6 邻近发现消息。
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 邻近发现消息。

请参阅 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 邻近发现消息。

请参阅 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 上提供的源代码。如需了解详情,或者为我们的文档做贡献,请参阅资源