Giao diện cơ sở hạ tầng

Mô-đun này bao gồm mô-đun tóm tắt nền tảng cho giao diện mạng của cơ sở hạ tầng liền kề.

Tóm tắt

Hàm

otPlatInfraIfDiscoverNat64Prefix(uint32_t aInfraIfIndex)
Gửi yêu cầu để khám phá tiền tố NAT64 trên giao diện cơ sở hạ tầng bằng aInfraIfIndex.
otPlatInfraIfDiscoverNat64PrefixDone(otInstance *aInstance, uint32_t aInfraIfIndex, const otIp6Prefix *aIp6Prefix)
void
Trình điều khiển giao diện infra gọi phương thức này để thông báo cho OpenThread rằng việc khám phá tiền tố NAT64 đã hoàn tất.
otPlatInfraIfHasAddress(uint32_t aInfraIfIndex, const otIp6Address *aAddress)
bool
Cho biết liệu một giao diện ở dưới có địa chỉ IPv6 đã chỉ định hay không.
otPlatInfraIfRecvIcmp6Nd(otInstance *aInstance, uint32_t aInfraIfIndex, const otIp6Address *aSrcAddress, const uint8_t *aBuffer, uint16_t aBufferLength)
void
Trình điều khiển giao diện infra gọi phương thức này để thông báo cho OpenThread rằng đã nhận được tin nhắn ICMPv6 Neighbor Discovery.
otPlatInfraIfSendIcmp6Nd(uint32_t aInfraIfIndex, const otIp6Address *aDestAddress, const uint8_t *aBuffer, uint16_t aBufferLength)
Gửi một thông báo ICMPv6 Neighbor Discovery trên giao diện cơ sở hạ tầng đã cho.
otPlatInfraIfStateChanged(otInstance *aInstance, uint32_t aInfraIfIndex, bool aIsRunning)
Trình điều khiển giao diện ở dưới gọi phương thức này để thông báo cho OpenThread về các thay đổi trạng thái giao diện.

Hàm

otPlatInfraIfDiscoverNat64Prefix

otError otPlatInfraIfDiscoverNat64Prefix(
  uint32_t aInfraIfIndex
)

Gửi yêu cầu để khám phá tiền tố NAT64 trên giao diện cơ sở hạ tầng bằng aInfraIfIndex.

OpenThread sẽ định kỳ gọi phương thức này để theo dõi sự hiện diện hoặc thay đổi của tiền tố NAT64.

Thông tin chi tiết
Thông số
[in] aInfraIfIndex
Chỉ mục của giao diện cơ sở hạ tầng để khám phá tiền tố NAT64.
Giá trị trả về
OT_ERROR_NONE
Yêu cầu khám phá tiền tố NAT64 thành công.
OT_ERROR_FAILED
Không thể yêu cầu khám phá tiền tố NAT64.

otPlatInfraIfDiscoverNat64PrefixDone

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

Trình điều khiển giao diện infra gọi phương thức này để thông báo cho OpenThread rằng việc khám phá tiền tố NAT64 đã hoàn tất.

Dự kiến sẽ được gọi sau khi gọi otPlatInfraIfDiscoveryNat64Prefix. Nếu không phát hiện tiền tố NAT64 nào, aIp6Prefix sẽ trỏ đến một tiền tố trống có độ dài bằng 0.

Thông tin chi tiết
Thông số
[in] aInstance
Cấu trúc thực thể OpenThread.
[in] aInfraIfIndex
Chỉ mục của giao diện cơ sở hạ tầng nơi phát hiện tiền tố NAT64.
[in] aIp6Prefix
Con trỏ tới tiền tố NAT64.

otPlatInfraIfHasAddress

bool otPlatInfraIfHasAddress(
  uint32_t aInfraIfIndex,
  const otIp6Address *aAddress
)

Cho biết liệu một giao diện ở dưới có địa chỉ IPv6 đã chỉ định hay không.

Thông tin chi tiết
Thông số
[in] aInfraIfIndex
Chỉ mục của giao diện bên dưới.
[in] aAddress
Địa chỉ IPv6.
Trả về
TRUE nếu giao diện ở dưới đã chỉ định địa chỉ IPv6, nếu không là FALSE.

otPlatInfraIfRecvIcmp6Nd

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

Trình điều khiển giao diện infra gọi phương thức này để thông báo cho OpenThread rằng đã nhận được tin nhắn ICMPv6 Neighbor Discovery.

Hãy xem RFC 4861: https://tools.ietf.org/html/rfc4861.

Thông tin chi tiết
Thông số
[in] aInstance
Cấu trúc thực thể OpenThread.
[in] aInfraIfIndex
Chỉ mục của giao diện cơ sở hạ tầng mà thông báo ICMPv6 được nhận trên đó.
[in] aSrcAddress
Địa chỉ nguồn nhận thư này.
[in] aBuffer
Vùng đệm thông báo ICMPv6.
[in] aBufferLength
Độ dài của vùng đệm thông báo ICMPv6.

otPlatInfraIfSendIcmp6Nd

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

Gửi một thông báo ICMPv6 Neighbor Discovery trên giao diện cơ sở hạ tầng đã cho.

Hãy xem RFC 4861: https://tools.ietf.org/html/rfc4861.

Thông tin chi tiết
Thông số
[in] aInfraIfIndex
Chỉ mục của giao diện cơ sở hạ tầng mà thông báo này được gửi đến.
[in] aDestAddress
Địa chỉ đích.
[in] aBuffer
Vùng đệm thông báo ICMPv6. Giá trị tổng kiểm ICMPv6 bằng 0 và nền tảng sẽ thực hiện phép tính giá trị tổng kiểm.
[in] aBufferLength
Độ dài của vùng đệm thông báo.
Giá trị trả về
OT_ERROR_NONE
Đã gửi thành công tin nhắn ICMPv6.
OT_ERROR_FAILED
Không gửi được tin nhắn ICMPv6.

otPlatInfraIfStateChanged

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

Trình điều khiển giao diện ở dưới gọi phương thức này để thông báo cho OpenThread về các thay đổi trạng thái giao diện.

Nền tảng có thể gọi phương thức ngay cả khi trạng thái đang chạy của giao diện không thay đổi. Trong trường hợp này, trạng thái của Trình quản lý định tuyến sẽ không bị ảnh hưởng.

Thông tin chi tiết
Thông số
[in] aInstance
Cấu trúc thực thể OpenThread.
[in] aInfraIfIndex
Chỉ mục của giao diện cơ sở hạ tầng.
[in] aIsRunning
Giá trị boolean cho biết giao diện cơ sở hạ tầng có đang chạy hay không.
Giá trị trả về
OT_ERROR_NONE
Đã cập nhật thành công trạng thái giao diện ở dưới.
OT_ERROR_INVALID_STATE
Trình quản lý định tuyến chưa được khởi động.
OT_ERROR_INVALID_ARGS
aInfraIfIndex không khớp với giao diện infra mà Trình quản lý định tuyến được khởi chạy.

Tài nguyên

Các chủ đề tham khảo API OpenThread bắt nguồn từ mã nguồn, có trên GitHub. Để biết thêm thông tin hoặc để đóng góp cho tài liệu của chúng tôi, hãy tham khảo Tài nguyên.