Инфраструктурный интерфейс

Этот модуль включает абстракцию платформы для интерфейса соседней инфраструктуры.

Краткое содержание

Функции

otPlatInfraIfDiscoverNat64Prefix (uint32_t aInfraIfIndex)
Отправьте запрос на обнаружение префикса NAT64 на интерфейсе инфраструктуры с помощью aInfraIfIndex .
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 Neighbor Discovery на заданный интерфейс инфраструктуры.
otPlatInfraIfStateChanged ( otInstance *aInstance, uint32_t aInfraIfIndex, bool aIsRunning)
Драйвер инфраструктурного интерфейса вызывает этот метод, чтобы уведомить OpenThread об изменениях состояния интерфейса.

Функции

otPlatInfraIfDiscoverNat64Prefix

otError otPlatInfraIfDiscoverNat64Prefix(
  uint32_t aInfraIfIndex
)

Отправьте запрос на обнаружение префикса NAT64 на интерфейсе инфраструктуры с помощью aInfraIfIndex .

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.

отПлатИнфраЕслиХасадрес

bool otPlatInfraIfHasAddress(
  uint32_t aInfraIfIndex,
  const otIp6Address *aAddress
)

Сообщает, назначен ли инфраструктурному интерфейсу данный адрес IPv6.

Подробности
Параметры
[in] aInfraIfIndex
Индекс инфраструктурного интерфейса.
[in] aAddress
IPv6-адрес.
Возврат
TRUE, если инфраструктурный интерфейс назначил назначенный адрес IPv6, в противном случае 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 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.

отплатинфраифстатечанжед

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 не соответствует инфраструктурному интерфейсу, с помощью которого инициализируется диспетчер маршрутизации.

Ресурсы

Справочные разделы API OpenThread взяты из исходного кода, доступного на GitHub . Для получения дополнительной информации или внесения вклада в нашу документацию обратитесь к Ресурсам .