Диагностика сетки
Этот модуль включает определения и функции для диагностики Mesh.
Краткое содержание
Для API диагностики сетки требуются OPENTHREAD_CONFIG_MESH_DIAG_ENABLE
и OPENTHREAD_FTD
.
Определения типов | |
---|---|
otMeshDiagChildEntry | определение типаstruct otMeshDiagChildEntry Представляет информацию о дочерней записи из otMeshDiagQueryChildTable() . |
otMeshDiagChildInfo | определение типаstruct otMeshDiagChildInfo Представляет информацию об обнаруженном дочернем элементе в сетке потоков с помощью otMeshDiagDiscoverTopology() . |
otMeshDiagChildIp6AddrsCallback )(otError aError, uint16_t aChildRloc16, otMeshDiagIp6AddrIterator *aIp6AddrIterator, void *aContext) | определение типаvoid(* Представляет обратный вызов, используемый otMeshDiagQueryChildrenIp6Addrs() для предоставления информации о дочернем элементе MTD и его списке адресов IPv6. |
otMeshDiagChildIterator | определение типаstruct otMeshDiagChildIterator Непрозрачный итератор для перебора списка дочерних элементов маршрутизатора. |
otMeshDiagDiscoverCallback )(otError aError, otMeshDiagRouterInfo *aRouterInfo, void *aContext) | определение типаvoid(* Тип указателя представляет собой обратный вызов, используемый otMeshDiagDiscoverTopology() для предоставления информации об обнаруженном маршрутизаторе. |
otMeshDiagDiscoverConfig | определение типаstruct otMeshDiagDiscoverConfig Представляет набор конфигураций, используемых при обнаружении топологии сетки, указывающий, какие элементы необходимо обнаружить. |
otMeshDiagIp6AddrIterator | определение типаstruct otMeshDiagIp6AddrIterator Непрозрачный итератор для перебора списка IPv6-адресов маршрутизатора. |
otMeshDiagQueryChildTableCallback )(otError aError, const otMeshDiagChildEntry *aChildEntry, void *aContext) | определение типаvoid(* Представляет обратный вызов, используемый otMeshDiagQueryChildTable() для предоставления информации о записях дочерней таблицы. |
otMeshDiagQueryRouterNeighborTableCallback )(otError aError, const otMeshDiagRouterNeighborEntry *aNeighborEntry, void *aContext) | определение типаvoid(* Представляет обратный вызов, используемый otMeshDiagQueryRouterNeighborTable() для предоставления информации о записях таблицы соседних маршрутизаторов. |
otMeshDiagRouterInfo | определение типаstruct otMeshDiagRouterInfo Представляет информацию о маршрутизаторе в сетке потоков, обнаруженную с помощью otMeshDiagDiscoverTopology() . |
otMeshDiagRouterNeighborEntry | определение типа Представляет информацию о записи соседа маршрутизатора из otMeshDiagQueryRouterNeighborTable() . |
Функции | |
---|---|
otMeshDiagCancel ( otInstance *aInstance) | void Отменяет текущее обнаружение топологии, если оно есть, в противном случае никаких действий. |
otMeshDiagDiscoverTopology ( otInstance *aInstance, const otMeshDiagDiscoverConfig *aConfig, otMeshDiagDiscoverCallback aCallback, void *aContext) | Запускает обнаружение топологии сети. |
otMeshDiagGetNextChildInfo ( otMeshDiagChildIterator *aIterator, otMeshDiagChildInfo *aChildInfo) | Перебирает обнаруженные дочерние элементы маршрутизатора. |
otMeshDiagGetNextIp6Address ( otMeshDiagIp6AddrIterator *aIterator, otIp6Address *aIp6Address) | Перебирает обнаруженные IPv6-адреса маршрутизатора или дочернего элемента MTD. |
otMeshDiagQueryChildTable ( otInstance *aInstance, uint16_t aRloc16, otMeshDiagQueryChildTableCallback aCallback, void *aContext) | Запускает запрос дочерней таблицы для данного маршрутизатора. |
otMeshDiagQueryChildrenIp6Addrs ( otInstance *aInstance, uint16_t aRloc16, otMeshDiagChildIp6AddrsCallback aCallback, void *aContext) | Отправляет запрос родительскому элементу для получения адресов IPv6 всех его дочерних элементов MTD. |
otMeshDiagQueryRouterNeighborTable ( otInstance *aInstance, uint16_t aRloc16, otMeshDiagQueryRouterNeighborTableCallback aCallback, void *aContext) | Запускает запрос таблицы соседей маршрутизатора для данного маршрутизатора. |
Структуры | |
---|---|
otMeshDiagChildEntry | Представляет информацию о дочерней записи из |
otMeshDiagChildInfo | Представляет информацию об обнаруженном дочернем элементе в сетке потоков с помощью |
отмешдиагдисковерконфиг | Представляет набор конфигураций, используемых при обнаружении топологии сетки, указывающий, какие элементы необходимо обнаружить. |
отмешдиагроутеринфо | Представляет информацию о маршрутизаторе в сетке потоков, обнаруженную с помощью |
otMeshDiagRouterNeighborEntry | Представляет информацию о записи соседа маршрутизатора из |
Определения типов
otMeshDiagChildEntry
struct otMeshDiagChildEntry otMeshDiagChildEntry
Представляет информацию о дочерней записи из otMeshDiagQueryChildTable()
.
mSupportsErrRate
указывает, поддерживается ли функция отслеживания ошибок и допустимы ли значения mFrameErrorRate
и mMessageErrorRate
. Частота ошибок кадров отслеживает ошибки передачи кадров (в направлении дочернего элемента) на уровне MAC, а mMessageErrorRate
отслеживает частоту ошибок сообщений IPv6 (выше уровня MAC и после повторных попыток MAC), когда сообщение IPv6 отбрасывается. Например, если сообщение большое и требует фрагментации 6LoWPAN, передача сообщения считается неудачной, если передача одного из его фрагментных кадров не удалась (например, никогда не подтверждалась).
otMeshDiagChildInfo
struct otMeshDiagChildInfo otMeshDiagChildInfo
Представляет информацию об обнаруженном дочернем элементе в сетке потоков с помощью otMeshDiagDiscoverTopology()
.
otMeshDiagChildIp6AddrsCallback
void(* otMeshDiagChildIp6AddrsCallback)(otError aError, uint16_t aChildRloc16, otMeshDiagIp6AddrIterator *aIp6AddrIterator, void *aContext)
Представляет обратный вызов, используемый otMeshDiagQueryChildrenIp6Addrs()
для предоставления информации о дочернем элементе MTD и его списке адресов IPv6.
Когда aError
имеет OT_ERROR_PENDING
, это указывает на то, что есть еще дочерние элементы и обратный вызов будет вызван снова.
Подробности | |||||||||
---|---|---|---|---|---|---|---|---|---|
Параметры |
|
otMeshDiagChildIterator
struct otMeshDiagChildIterator otMeshDiagChildIterator
Непрозрачный итератор для перебора списка дочерних элементов маршрутизатора.
Указатели на экземпляр этого типа предоставляются в otMeshDiagRouterInfo
.
otMeshDiagDiscoverCallback
void(* otMeshDiagDiscoverCallback)(otError aError, otMeshDiagRouterInfo *aRouterInfo, void *aContext)
Тип указателя представляет собой обратный вызов, используемый otMeshDiagDiscoverTopology()
для предоставления информации об обнаруженном маршрутизаторе.
Когда aError
имеет OT_ERROR_PENDING
, это указывает на то, что обнаружение еще не завершено и потребуется обнаружить больше маршрутизаторов, и обратный вызов будет вызван снова.
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
|
отмешдиагдисковерконфиг
struct otMeshDiagDiscoverConfig otMeshDiagDiscoverConfig
Представляет набор конфигураций, используемых при обнаружении топологии сетки, указывающий, какие элементы необходимо обнаружить.
otMeshDiagIp6AddrIterator
struct otMeshDiagIp6AddrIterator otMeshDiagIp6AddrIterator
Непрозрачный итератор для перебора списка IPv6-адресов маршрутизатора.
Указатели на экземпляр этого типа предоставляются в otMeshDiagRouterInfo
.
otMeshDiagQueryChildTableCallback
void(* otMeshDiagQueryChildTableCallback)(otError aError, const otMeshDiagChildEntry *aChildEntry, void *aContext)
Представляет обратный вызов, используемый otMeshDiagQueryChildTable()
для предоставления информации о записях дочерней таблицы.
Когда aError
имеет OT_ERROR_PENDING
, это означает, что в таблице все еще есть больше записей и обратный вызов будет вызван снова.
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
|
otMeshDiagQueryRouterNeighborTableCallback
void(* otMeshDiagQueryRouterNeighborTableCallback)(otError aError, const otMeshDiagRouterNeighborEntry *aNeighborEntry, void *aContext)
Представляет обратный вызов, используемый otMeshDiagQueryRouterNeighborTable()
для предоставления информации о записях таблицы соседних маршрутизаторов.
Когда aError
имеет OT_ERROR_PENDING
, это означает, что в таблице все еще есть больше записей и обратный вызов будет вызван снова.
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
|
отмешдиагроутеринфо
struct otMeshDiagRouterInfo otMeshDiagRouterInfo
Представляет информацию о маршрутизаторе в сетке потоков, обнаруженную с помощью otMeshDiagDiscoverTopology()
.
otMeshDiagRouterNeighborEntry
struct otMeshDiagRouterNeighborEntry otMeshDiagRouterNeighborEntry
Представляет информацию о записи соседа маршрутизатора из otMeshDiagQueryRouterNeighborTable()
.
mSupportsErrRate
указывает, поддерживается ли функция отслеживания ошибок и допустимы ли значения mFrameErrorRate
и mMessageErrorRate
. Частота ошибок кадров отслеживает ошибки передачи кадров (в направлении дочернего элемента) на уровне MAC, а mMessageErrorRate
отслеживает частоту ошибок сообщений IPv6 (выше уровня MAC и после повторных попыток MAC), когда сообщение IPv6 отбрасывается. Например, если сообщение большое и требует фрагментации 6LoWPAN, передача сообщения считается неудачной, если передача одного из его фрагментных кадров не удалась (например, никогда не подтверждалась).
Функции
otMeshDiagCancel
void otMeshDiagCancel( otInstance *aInstance )
Отменяет текущее обнаружение топологии, если оно есть, в противном случае никаких действий.
Когда текущее обнаружение отменяется, обратный вызов из otMeshDiagDiscoverTopology()
больше не будет вызываться.
otMeshDiagDiscoverTopology
otError otMeshDiagDiscoverTopology( otInstance *aInstance, const otMeshDiagDiscoverConfig *aConfig, otMeshDiagDiscoverCallback aCallback, void *aContext )
Запускает обнаружение топологии сети.
Подробности | |||||||||
---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||
Возвращаемые значения |
|
otMeshDiagGetNextChildInfo
otError otMeshDiagGetNextChildInfo( otMeshDiagChildIterator *aIterator, otMeshDiagChildInfo *aChildInfo )
Перебирает обнаруженные дочерние элементы маршрутизатора.
Эта функция ДОЛЖНА использоваться из обратного вызова otMeshDiagDiscoverCallback()
и использовать mChildIterator
из структуры aRouterInfo
, которая предоставляется в качестве входных данных для обратного вызова.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возвращаемые значения |
|
otMeshDiagGetNextIp6Address
otError otMeshDiagGetNextIp6Address( otMeshDiagIp6AddrIterator *aIterator, otIp6Address *aIp6Address )
Перебирает обнаруженные IPv6-адреса маршрутизатора или дочернего элемента MTD.
Должен быть использован
- из обратного вызова
otMeshDiagDiscoverCallback()
и используйтеmIp6AddrIterator
из структурыaRouterInfo
, которая предоставляется в качестве входных данных для обратного вызова, или - из обратного вызова
otMeshDiagChildIp6AddrsCallback()
вместе с предоставленнымaIp6AddrIterator
.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возвращаемые значения |
|
отмешдиагкуеридтабле
otError otMeshDiagQueryChildTable( otInstance *aInstance, uint16_t aRloc16, otMeshDiagQueryChildTableCallback aCallback, void *aContext )
Запускает запрос дочерней таблицы для данного маршрутизатора.
Подробности | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||||
Возвращаемые значения |
|
otMeshDiagQueryChildrenIp6Addrs
otError otMeshDiagQueryChildrenIp6Addrs( otInstance *aInstance, uint16_t aRloc16, otMeshDiagChildIp6AddrsCallback aCallback, void *aContext )
Отправляет запрос родительскому элементу для получения адресов IPv6 всех его дочерних элементов MTD.
Подробности | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||||
Возвращаемые значения |
|
otMeshDiagQueryRouterNeighborTable
otError otMeshDiagQueryRouterNeighborTable( otInstance *aInstance, uint16_t aRloc16, otMeshDiagQueryRouterNeighborTableCallback aCallback, void *aContext )
Запускает запрос таблицы соседей маршрутизатора для данного маршрутизатора.
Подробности | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||||
Возвращаемые значения |
|
Макросы
OT_MESH_DIAG_VERSION_UNKNOWN
OT_MESH_DIAG_VERSION_UNKNOWN 0xffff
Указывает, что версия потока неизвестна.
Это используется в otMeshDiagRouterInfo
для свойства mVersion
, когда устройство не предоставляет свою версию. Это означает, что на устройстве, скорее всего, установлена версия 1.3.0 (значение версии 4) или более ранняя версия.
Ресурсы
Справочные разделы API OpenThread взяты из исходного кода, доступного на GitHub . Для получения дополнительной информации или внесения вклада в нашу документацию обратитесь к Ресурсам .