ТРЭЛ - Платформа
Этот модуль включает абстракцию платформы для канала инкапсуляции радиопотоков (TREL) с использованием DNS-SD и UDP/IPv6.
Краткое содержание
Определения типов | |
---|---|
otPlatTrelPeerInfo | определение типаstruct otPlatTrelPeerInfo Представляет информацию об одноранговом узле TREL, обнаруженную с помощью просмотра DNS-SD по имени службы «_trel._udp». |
Функции | |
---|---|
otPlatTrelDisable ( otInstance *aInstance) | void Отключает уровень платформы TREL. |
otPlatTrelEnable ( otInstance *aInstance, uint16_t *aUdpPort) | void Инициализирует и включает уровень платформы TREL. |
otPlatTrelHandleDiscoveredPeerInfo ( otInstance *aInstance, const otPlatTrelPeerInfo *aInfo) | void Это функция обратного вызова с уровня платформы, сообщающая об обнаруженной информации об узле TREL. |
otPlatTrelHandleReceived ( otInstance *aInstance, uint8_t *aBuffer, uint16_t aLength) | void Обратный вызов с платформы для уведомления о полученном пакете TREL UDP. |
otPlatTrelRegisterService ( otInstance *aInstance, uint16_t aPort, const uint8_t *aTxtData, uint8_t aTxtLength) | void Регистрирует новую службу, которая будет рекламироваться с помощью DNS-SD [RFC6763]. |
otPlatTrelSend ( otInstance *aInstance, const uint8_t *aUdpPayload, uint16_t aUdpPayloadLen, const otSockAddr *aDestSockAddr) | void Запрашивает отправку пакета TREL UDP в указанное место назначения. |
Структуры | |
---|---|
отПлатТрелПеерИнфо | Представляет информацию об одноранговом узле TREL, обнаруженную с помощью просмотра DNS-SD по имени службы «_trel._udp». |
Определения типов
отПлатТрелПеерИнфо
struct otPlatTrelPeerInfo otPlatTrelPeerInfo
Представляет информацию об одноранговом узле TREL, обнаруженную с помощью просмотра DNS-SD по имени службы «_trel._udp».
Функции
отПлатТрелДисабле
void otPlatTrelDisable( otInstance *aInstance )
Отключает уровень платформы TREL.
После этого вызова уровень платформы ДОЛЖЕН остановить просмотр DNS-SD по имени службы «_trel._udp», прекратить рекламу службы TREL DNS-SD (из otPlatTrelRegisterService()
) и ДОЛЖЕН закрыть сокет UDP, используемый для получения сообщений TREL.
[in] aInstance Экземпляр OpenThread.
отПлатТреленабле
void otPlatTrelEnable( otInstance *aInstance, uint16_t *aUdpPort )
Инициализирует и включает уровень платформы TREL.
При этом вызове уровень платформы ДОЛЖЕН выполнить следующее:
1) Уровень платформы TREL ДОЛЖЕН открыть сокет UDP для прослушивания и получения сообщений TREL от узлов. Сокет привязан к временному номеру порта, выбранному уровнем платформы. Номер порта ДОЛЖЕН быть возвращен в aUdpPort
. Сокет также привязан к сетевым интерфейсам, на которых должен поддерживаться TREL. Сокет и выбранный порт должны оставаться действительными, пока включен TREL.
2) Уровень платформы ДОЛЖЕН инициировать постоянный просмотр DNS-SD по имени службы «_trel._udp» в локальном домене просмотра, чтобы обнаружить другие устройства, поддерживающие TREL. Продолжающийся просмотр создаст два разных типа событий: события «добавить» и события «удалить». Когда просмотр запускается, он должен создавать событие «добавить» для каждого узла TREL, присутствующего в данный момент в сети. Всякий раз, когда одноранговый узел TREL отключается от сети, должно создаваться событие «удалить». Однако события «удаления» не гарантируются. При обнаружении экземпляра службы TREL необходимо запустить новый текущий запрос DNS-SD для записи AAAA по имени хоста, указанному в записи SRV обнаруженного экземпляра. Если для однорангового узла обнаружено несколько хостов-адресатов IPv6, ДОЛЖЕН быть сообщен один из всех адресов с наибольшей областью действия (если в одной области имеется несколько адресов, один из них должен быть выбран случайным образом).
Платформа TREL ДОЛЖНА вернуть обратно обнаруженную информацию об одноранговом узле, используя обратный вызов otPlatTrelHandleDiscoveredPeerInfo()
. Этот обратный вызов ДОЛЖЕН вызываться при обнаружении нового узла, при изменении существующей записи (например, новая запись TXT, новый номер порта или новый адрес IPv6) или при удалении узла.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
otPlatTrelHandleDiscoveredPeerInfo
void otPlatTrelHandleDiscoveredPeerInfo( otInstance *aInstance, const otPlatTrelPeerInfo *aInfo )
Это функция обратного вызова с уровня платформы, сообщающая об обнаруженной информации об узле TREL.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
otPlatTrelHandleReceived
void otPlatTrelHandleReceived( otInstance *aInstance, uint8_t *aBuffer, uint16_t aLength )
Обратный вызов с платформы для уведомления о полученном пакете TREL UDP.
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
|
отПлатТрелРегистерсервице
void otPlatTrelRegisterService( otInstance *aInstance, uint16_t aPort, const uint8_t *aTxtData, uint8_t aTxtLength )
Регистрирует новую службу, которая будет рекламироваться с помощью DNS-SD [RFC6763].
Имя службы — «_trel._udp». Платформа должна использовать собственное имя хоста, которое в сочетании с именем службы и локальным именем домена DNS-SD даст полное имя экземпляра службы, например «example-host._trel._udp.local.».
Домен, под которым отображается имя экземпляра службы, будет «локальным» для mDNS и будет любым доменом, который используется для регистрации службы в случае локальной службы DNS-SD, отличной от mDNS.
Последующий вызов этой функции обновляет предыдущую службу. Он используется для обновления данных записи TXT и/или номера порта.
Буфер aTxtData
не сохраняется после возврата из этой функции. Уровень платформы НЕ ДОЛЖЕН сохранять указатель и вместо этого копировать содержимое, если это необходимо.
Подробности | |||||||||
---|---|---|---|---|---|---|---|---|---|
Параметры |
|
отПлатТрелСенд
void otPlatTrelSend( otInstance *aInstance, const uint8_t *aUdpPayload, uint16_t aUdpPayloadLen, const otSockAddr *aDestSockAddr )
Запрашивает отправку пакета TREL UDP в указанное место назначения.
Подробности | |||||||||
---|---|---|---|---|---|---|---|---|---|
Параметры |
|
Ресурсы
Справочные разделы API OpenThread взяты из исходного кода, доступного на GitHub . Для получения дополнительной информации или внесения вклада в нашу документацию обратитесь к Ресурсам .