Посмотреть исходный код на GitHub
Данные сети потоков содержат информацию о пограничных маршрутизаторах и других серверах, доступных в сети потоков. Пограничные маршрутизаторы и устройства, предлагающие услуги, регистрируют свою информацию в Лидере. Лидер собирает и структурирует эту информацию в данных сети потоков и распределяет информацию по всем устройствам в сети потоков.
Пограничные маршрутизаторы могут регистрировать префиксы, назначенные сети Thread, и префиксы, для которых они предлагают маршруты. Службы могут регистрировать любую информацию, относящуюся к самой службе.
Пограничный маршрутизатор и служебная информация могут быть постоянными или временными. Сетевые данные стабильного потока распространяются на все устройства, включая спящие конечные устройства (SED). Временные сетевые данные распространяются на все узлы, кроме SED.
Команды сетевых данных
Чтобы получить список команд netdata
, введите help
:
netdata help
help
full
length
maxlength
publish
register
show
steeringdata
unpublish
Done
full
команды
full
команды сообщают о состоянии флага или повторно отслеживают флаг, был ли вызван обратный вызов «net data full».
Эта команда требует OPENTHREAD_CONFIG_BORDER_ROUTER_SIGNAL_NETWORK_DATA_FULL.
команды length
и maxlength
Команда length
получает текущую длину сетевых данных потока, представленную в виде количества байтов. Команды maxlength
получают максимальную наблюдаемую длину или сбрасывают отслеживаемую максимальную длину.
publish
команды
Издатель сетевых данных предоставляет механизмы для ограничения количества одинаковых записей службы и префикса (префикса сети или внешнего маршрута) в сетевых данных потока путем мониторинга сетевых данных и управления временем добавления или удаления записей.
Издатель требует OPENTHREAD_CONFIG_NETDATA_PUBLISHER_ENABLE
.
Сформируйте сеть и настройте префикс
Создайте новую конфигурацию сети.
dataset init new
DoneОтображение конфигурации сети.
dataset
Active Timestamp: 1 Channel: 13 Channel Mask: 0x07fff800 Ext PAN ID: d63e8e3e495ebbc3 Mesh Local Prefix: fd3d:b50b:f96d:722d::/64 Network Key: dfd34f0f05cad978ec4e32b0413038ff Network Name: OpenThread-8f28 PAN ID: 0x8f28 PSKc: c23a76e98f1a6483639b1ac1271e2e27 Security Policy: 0, onrcb DoneЗафиксируйте новый набор данных в активном рабочем наборе данных в энергонезависимом хранилище.
dataset commit active
DoneВключить интерфейс потока
ifconfig up
Donethread start
DoneОтображение IPv6-адресов, назначенных интерфейсу Thread.
ipaddr
fd3d:b50b:f96d:722d:0:ff:fe00:fc00 fd3d:b50b:f96d:722d:0:ff:fe00:dc00 fd3d:b50b:f96d:722d:393c:462d:e8d2:db32 fe80:0:0:0:a40b:197f:593d:ca61 DoneЗарегистрируйте префикс IPv6, назначенный сети Thread.
prefix add fd00:dead:beef:cafe::/64 paros med
Donenetdata register
DoneОтображение сетевых данных потока.
netdata show
Prefixes: fd00:dead:beef:cafe::/64 paros med dc00 Routes: fd49:7770:7fc5:0::/64 s med 4000 Services: 44970 5d c000 s 4000 44970 01 9a04b000000e10 s 4000 DoneПрефиксы и маршруты включают сопоставления аргументов и значение RLOC.
Записи службы включают значения otServiceConfig , в том числе
mEnterpriseNumber
,mServiceData
,otServerConfig::mServerData
иs
для обозначенияotServerConfig::mStable
. RLOC также добавляется в конец записи.Отображение текущей длины сетевых данных потока раздела в байтах.
netdata length
23 DoneОтображение IPv6-адресов, назначенных интерфейсу Thread, включая добавленный префикс.
ipaddr
fd00:dead:beef:cafe:4da8:5234:4aa2:4cfa fd3d:b50b:f96d:722d:0:ff:fe00:fc00 fd3d:b50b:f96d:722d:0:ff:fe00:dc00 fd3d:b50b:f96d:722d:393c:462d:e8d2:db32 fe80:0:0:0:a40b:197f:593d:ca61 Done
Подключиться к существующей сети
Для подключения устройства к сети Thread требуется только сетевой ключ.
Хотя это и не требуется, указание канала позволяет избежать необходимости поиска по нескольким каналам, улучшая как задержку, так и эффективность процесса подключения.
После того, как устройство успешно подключается к сети Thread, оно получает полный активный рабочий набор данных.
Создайте частичный активный набор операционных данных.
dataset networkkey dfd34f0f05cad978ec4e32b0413038ff
Donedataset commit active
DoneВключите интерфейс потока.
ifconfig up
Donethread start
DoneПосле подключения к существующей сети отобразите данные сети потока.
netdata show
Prefixes: fd00:dead:beef:cafe::/64 paros med dc00 Routes: Services: DoneОтображение текущей длины сетевых данных потока раздела в байтах.
netdata length
23 DoneОтображение IPv6-адресов, назначенных интерфейсу Thread.
ipaddr
fd00:dead:beef:cafe:4da8:5234:4aa2:4cfa fd3d:b50b:f96d:722d:0:ff:fe00:fc00 fd3d:b50b:f96d:722d:0:ff:fe00:dc00 fd3d:b50b:f96d:722d:393c:462d:e8d2:db32 fe80:0:0:0:a40b:197f:593d:ca61 Done
Отладка и диагностика
Сетевые данные имеют ограниченный размер 254 байта. Если граничные маршрутизаторы продолжают добавлять записи (например, префиксы, маршруты или записи служб) в сетевые данные, они могут переполниться. Когда это происходит, новые запросы от пограничного маршрутизатора на добавление новых элементов будут отклонены или проигнорированы лидером. Лидер не обязательно сигнализирует об отказе пограничному маршрутизатору, поэтому пограничный маршрутизатор может не сразу понять, что сетевые данные заполняются. Однако есть способ определить, когда сетевые данные заполняются.
Метод обнаружения, реализованный как на пограничных маршрутизаторах, так и на лидере, использует механизм API обратного вызова и позволяет пользователям получать уведомления о заполнении сетевых данных. Обратный вызов можно использовать для выполнения действий, таких как удаление устаревших префиксов или служебных записей. Команды netdata full
используются для флага, который отслеживает, был ли вызван обратный вызов «net data full». Эти команды могут сообщать о состоянии флага или сбрасывать его.
Для типичных случаев использования Thread маловероятно, что сетевые данные будут заполнены, даже в сценарии, где есть много граничных маршрутизаторов, и все они добавляют префиксы маршрутов.
Технически возможно, что сетевые данные переполнятся, однако это часто происходит из-за неправильной настройки или проблемы с пограничным маршрутизатором. Команды netdata length
и netdata maxlength
могут помочь отладить ошибки переполнения сетевых данных. length
получает текущую длину сетевых данных в байтах, а maxlength
получает максимальную наблюдаемую длину, а также может сбрасывать отслеживаемую максимальную длину.
Посмотреть исходный код на GitHub
Данные сети потоков содержат информацию о пограничных маршрутизаторах и других серверах, доступных в сети потоков. Пограничные маршрутизаторы и устройства, предлагающие услуги, регистрируют свою информацию в Лидере. Лидер собирает и структурирует эту информацию в данных сети потоков и распределяет информацию по всем устройствам в сети потоков.
Пограничные маршрутизаторы могут регистрировать префиксы, назначенные сети Thread, и префиксы, для которых они предлагают маршруты. Службы могут регистрировать любую информацию, относящуюся к самой службе.
Пограничный маршрутизатор и служебная информация могут быть постоянными или временными. Сетевые данные стабильного потока распространяются на все устройства, включая спящие конечные устройства (SED). Временные сетевые данные распространяются на все узлы, кроме SED.
Команды сетевых данных
Чтобы получить список команд netdata
, введите help
:
netdata help
help
full
length
maxlength
publish
register
show
steeringdata
unpublish
Done
full
команды
full
команды сообщают о состоянии флага или повторно отслеживают флаг, был ли вызван обратный вызов «net data full».
Эта команда требует OPENTHREAD_CONFIG_BORDER_ROUTER_SIGNAL_NETWORK_DATA_FULL.
команды length
и maxlength
Команда length
получает текущую длину сетевых данных потока, представленную в виде количества байтов. Команды maxlength
получают максимальную наблюдаемую длину или сбрасывают отслеживаемую максимальную длину.
publish
команды
Издатель сетевых данных предоставляет механизмы для ограничения количества одинаковых записей службы и префикса (префикса сети или внешнего маршрута) в сетевых данных потока путем мониторинга сетевых данных и управления временем добавления или удаления записей.
Издатель требует OPENTHREAD_CONFIG_NETDATA_PUBLISHER_ENABLE
.
Сформируйте сеть и настройте префикс
Создайте новую конфигурацию сети.
dataset init new
DoneОтображение конфигурации сети.
dataset
Active Timestamp: 1 Channel: 13 Channel Mask: 0x07fff800 Ext PAN ID: d63e8e3e495ebbc3 Mesh Local Prefix: fd3d:b50b:f96d:722d::/64 Network Key: dfd34f0f05cad978ec4e32b0413038ff Network Name: OpenThread-8f28 PAN ID: 0x8f28 PSKc: c23a76e98f1a6483639b1ac1271e2e27 Security Policy: 0, onrcb DoneЗафиксируйте новый набор данных в активном рабочем наборе данных в энергонезависимом хранилище.
dataset commit active
DoneВключить интерфейс потока
ifconfig up
Donethread start
DoneОтображение IPv6-адресов, назначенных интерфейсу Thread.
ipaddr
fd3d:b50b:f96d:722d:0:ff:fe00:fc00 fd3d:b50b:f96d:722d:0:ff:fe00:dc00 fd3d:b50b:f96d:722d:393c:462d:e8d2:db32 fe80:0:0:0:a40b:197f:593d:ca61 DoneЗарегистрируйте префикс IPv6, назначенный сети Thread.
prefix add fd00:dead:beef:cafe::/64 paros med
Donenetdata register
DoneОтображение сетевых данных потока.
netdata show
Prefixes: fd00:dead:beef:cafe::/64 paros med dc00 Routes: fd49:7770:7fc5:0::/64 s med 4000 Services: 44970 5d c000 s 4000 44970 01 9a04b000000e10 s 4000 DoneПрефиксы и маршруты включают сопоставления аргументов и значение RLOC.
Записи службы включают значения otServiceConfig , в том числе
mEnterpriseNumber
,mServiceData
,otServerConfig::mServerData
иs
для обозначенияotServerConfig::mStable
. RLOC также добавляется в конец записи.Отображение текущей длины сетевых данных потока раздела в байтах.
netdata length
23 DoneОтображение IPv6-адресов, назначенных интерфейсу Thread, включая добавленный префикс.
ipaddr
fd00:dead:beef:cafe:4da8:5234:4aa2:4cfa fd3d:b50b:f96d:722d:0:ff:fe00:fc00 fd3d:b50b:f96d:722d:0:ff:fe00:dc00 fd3d:b50b:f96d:722d:393c:462d:e8d2:db32 fe80:0:0:0:a40b:197f:593d:ca61 Done
Подключиться к существующей сети
Для подключения устройства к сети Thread требуется только сетевой ключ.
Хотя это и не требуется, указание канала позволяет избежать необходимости поиска по нескольким каналам, улучшая как задержку, так и эффективность процесса подключения.
После того, как устройство успешно подключается к сети Thread, оно получает полный активный рабочий набор данных.
Создайте частичный активный набор операционных данных.
dataset networkkey dfd34f0f05cad978ec4e32b0413038ff
Donedataset commit active
DoneВключите интерфейс потока.
ifconfig up
Donethread start
DoneПосле подключения к существующей сети отобразите данные сети потока.
netdata show
Prefixes: fd00:dead:beef:cafe::/64 paros med dc00 Routes: Services: DoneОтображение текущей длины сетевых данных потока раздела в байтах.
netdata length
23 DoneОтображение IPv6-адресов, назначенных интерфейсу Thread.
ipaddr
fd00:dead:beef:cafe:4da8:5234:4aa2:4cfa fd3d:b50b:f96d:722d:0:ff:fe00:fc00 fd3d:b50b:f96d:722d:0:ff:fe00:dc00 fd3d:b50b:f96d:722d:393c:462d:e8d2:db32 fe80:0:0:0:a40b:197f:593d:ca61 Done
Отладка и диагностика
Сетевые данные имеют ограниченный размер 254 байта. Если граничные маршрутизаторы продолжают добавлять записи (например, префиксы, маршруты или записи служб) в сетевые данные, они могут переполниться. Когда это происходит, новые запросы от пограничного маршрутизатора на добавление новых элементов будут отклонены или проигнорированы лидером. Лидер не обязательно сигнализирует об отказе пограничному маршрутизатору, поэтому пограничный маршрутизатор может не сразу понять, что сетевые данные заполняются. Однако есть способ определить, когда сетевые данные заполняются.
Метод обнаружения, реализованный как на пограничных маршрутизаторах, так и на лидере, использует механизм API обратного вызова и позволяет пользователям получать уведомления о заполнении сетевых данных. Обратный вызов можно использовать для выполнения действий, таких как удаление устаревших префиксов или служебных записей. Команды netdata full
используются для флага, который отслеживает, был ли вызван обратный вызов «net data full». Эти команды могут сообщать о состоянии флага или сбрасывать его.
Для типичных случаев использования Thread маловероятно, что сетевые данные будут заполнены, даже в сценарии, где есть много граничных маршрутизаторов, и все они добавляют префиксы маршрутов.
Технически возможно, что сетевые данные переполнятся, однако это часто происходит из-за неправильной настройки или проблемы с пограничным маршрутизатором. Команды netdata length
и netdata maxlength
могут помочь отладить ошибки переполнения сетевых данных. length
получает текущую длину сетевых данных в байтах, а maxlength
получает максимальную наблюдаемую длину, а также может сбрасывать отслеживаемую максимальную длину.