TREL

Этот модуль включает абстракцию платформы для канала инкапсуляции потокового радио (TREL) с использованием интерфейса IPv6 / UDP.

Резюме

Функции

otPlatTrelUdp6HandleReceived ( otInstance *aInstance, uint8_t *aBuffer, uint16_t aLength)
void
Эта функция является обратным вызовом платформы для уведомления о полученном пакете.
otPlatTrelUdp6Init ( otInstance *aInstance, const otIp6Address *aUnicastAddress, uint16_t aUdpPort)
void
Эта функция инициализирует интерфейс TREL IPv6 / UDP.
otPlatTrelUdp6SendTo ( otInstance *aInstance, const uint8_t *aBuffer, uint16_t aLength, const otIp6Address *aDestAddress)
Эта функция запрашивает отправку пакета в указанное место назначения.
otPlatTrelUdp6SetTestMode ( otInstance *aInstance, bool aEnable)
Эта дополнительная функция предназначена только для тестирования.
otPlatTrelUdp6SubscribeMulticastAddress ( otInstance *aInstance, const otIp6Address *aMulticastAddress)
void
Эта функция подписывает интерфейс TREL IPv6 / UDP на новый многоадресный адрес.
otPlatTrelUdp6UpdateAddress ( otInstance *aInstance, const otIp6Address *aUnicastAddress)
void
Эта функция обновляет одноадресный IPv6-адрес для интерфейса TREL IPv6 / UDP.

Функции

otPlatTrelUdp6HandleReceived

void otPlatTrelUdp6HandleReceived(
  otInstance *aInstance,
  uint8_t *aBuffer,
  uint16_t aLength
)

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

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aBuffer
Буфер, содержащий полученный пакет.
[in] aLength
Длина пакета (количество байтов).

otPlatTrelUdp6Init

void otPlatTrelUdp6Init(
  otInstance *aInstance,
  const otIp6Address *aUnicastAddress,
  uint16_t aUdpPort
)

Эта функция инициализирует интерфейс TREL IPv6 / UDP.

Эта функция вызывается перед любыми другими функциями платформы TREL.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aUnicastAddress
Одноадресный адрес для добавления к интерфейсу и использования в качестве источника tx и назначения rx.
[in] aUdpPort
Используемый номер порта UDP.

otPlatTrelUdp6SendTo

otError otPlatTrelUdp6SendTo(
  otInstance *aInstance,
  const uint8_t *aBuffer,
  uint16_t aLength,
  const otIp6Address *aDestAddress
)

Эта функция запрашивает отправку пакета в указанное место назначения.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aBuffer
Указатель на буфер, содержащий пакет для отправки.
[in] aLength
Длина пакета (количество байтов).
[in] aDestAddress
IPv6-адрес назначения (может быть одноадресным или многоадресным IPv6-адресом).
Возвращаемые значения
OT_ERROR_NONE
Запрос tx был успешно обработан.
OT_ERROR_ABORT
Интерфейс не готов, передача данных была прервана.

otPlatTrelUdp6SetTestMode

otError otPlatTrelUdp6SetTestMode(
  otInstance *aInstance,
  bool aEnable
)

Эта дополнительная функция предназначена только для тестирования.

Он изменяет статус тестового режима для интерфейса TREL.

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

Слабая реализация этого метода по умолчанию предоставляется OpenThread (возвращает NOT_IMPLEMENTED).

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aEnable
Указывает, следует ли включить / отключить интерфейс TREL.
Возвращаемые значения
OT_ERROR_NONE
Успешно изменен статус теста интерфейса TREL (включен / выключен).
OT_ERROR_FAILED
Не удалось включить интерфейс TREL.
OT_ERROR_NOT_IMPLEMENTED
Эта функция не предусмотрена платформой.

otPlatTrelUdp6ПодписатьсяMulticastAddress

void otPlatTrelUdp6SubscribeMulticastAddress(
  otInstance *aInstance,
  const otIp6Address *aMulticastAddress
)

Эта функция подписывает интерфейс TREL IPv6 / UDP на новый многоадресный адрес.

Эту функцию можно вызывать несколько раз для подписки на разные адреса. Интерфейс должен принять / принимать пакеты , предназначенные для любого ранее подписанного группового адреса в дополнении к одноадресному добавляемым otPlatTrelUdp6Init() функции , когда интерфейс был инициализирован.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aMulticastAddress
Многоадресный IPv6-адрес.

otPlatTrelUdp6UpdateAddress

void otPlatTrelUdp6UpdateAddress(
  otInstance *aInstance,
  const otIp6Address *aUnicastAddress
)

Эта функция обновляет одноадресный IPv6-адрес для интерфейса TREL IPv6 / UDP.

Интерфейс должен иметь только один одноадресный IPv6-адрес. Вызов Эта функция заменяет все ранее установленные одноадресной IPv6 - адреса (во время инициализации из otPlatTrelUdp6Init или более ранних вызовов otPlatTrelUdp6UpdateAddress() ).

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aUnicastAddress
Одноадресный адрес для добавления к интерфейсу и использования в качестве источника tx и назначения rx.