Отображение сетевых данных и управление ими с помощью OT CLI

Посмотреть исходный код на 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 .

Сформируйте сеть и настройте префикс

  1. Создайте новую конфигурацию сети.

    dataset init new
    Done
    
  2. Отображение конфигурации сети.

    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
    
  3. Зафиксируйте новый набор данных в активном рабочем наборе данных в энергонезависимом хранилище.

    dataset commit active
    Done
    
  4. Включить интерфейс потока

    ifconfig up
    Done
    thread start
    Done
    
  5. Отображение 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
    
  6. Зарегистрируйте префикс IPv6, назначенный сети Thread.

    prefix add fd00:dead:beef:cafe::/64 paros med
    Done
    netdata register
    Done
    
  7. Отображение сетевых данных потока.

    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 также добавляется в конец записи.

  8. Отображение текущей длины сетевых данных потока раздела в байтах.

    netdata length
    23
    Done
    
  9. Отображение 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, оно получает полный активный рабочий набор данных.

  1. Создайте частичный активный набор операционных данных.

    dataset networkkey dfd34f0f05cad978ec4e32b0413038ff
    Done
    dataset commit active
    Done
    
  2. Включите интерфейс потока.

    ifconfig up
    Done
    thread start
    Done
    
  3. После подключения к существующей сети отобразите данные сети потока.

    netdata show
    Prefixes:
    fd00:dead:beef:cafe::/64 paros med dc00
    Routes:
    Services:
    Done
    
  4. Отображение текущей длины сетевых данных потока раздела в байтах.

    netdata length
    23
    Done
    
  5. Отображение 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 .

Сформируйте сеть и настройте префикс

  1. Создайте новую конфигурацию сети.

    dataset init new
    Done
    
  2. Отображение конфигурации сети.

    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
    
  3. Зафиксируйте новый набор данных в активном рабочем наборе данных в энергонезависимом хранилище.

    dataset commit active
    Done
    
  4. Включить интерфейс потока

    ifconfig up
    Done
    thread start
    Done
    
  5. Отображение 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
    
  6. Зарегистрируйте префикс IPv6, назначенный сети Thread.

    prefix add fd00:dead:beef:cafe::/64 paros med
    Done
    netdata register
    Done
    
  7. Отображение сетевых данных потока.

    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 также добавляется в конец записи.

  8. Отображение текущей длины сетевых данных потока раздела в байтах.

    netdata length
    23
    Done
    
  9. Отображение 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, оно получает полный активный рабочий набор данных.

  1. Создайте частичный активный набор операционных данных.

    dataset networkkey dfd34f0f05cad978ec4e32b0413038ff
    Done
    dataset commit active
    Done
    
  2. Включите интерфейс потока.

    ifconfig up
    Done
    thread start
    Done
    
  3. После подключения к существующей сети отобразите данные сети потока.

    netdata show
    Prefixes:
    fd00:dead:beef:cafe::/64 paros med dc00
    Routes:
    Services:
    Done
    
  4. Отображение текущей длины сетевых данных потока раздела в байтах.

    netdata length
    23
    Done
    
  5. Отображение 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 получает максимальную наблюдаемую длину, а также может сбрасывать отслеживаемую максимальную длину.