Тестирование сети потоков с визуализацией

1. Введение

5abd22afa2f2ee9a.png

Что нить, OpenThread, OTN, и шелк?

Thread — это основанный на IP протокол маломощной беспроводной ячеистой сети, который обеспечивает безопасную связь между устройствами и между устройствами и облаком. Сети потоков могут адаптироваться к изменениям топологии, чтобы избежать единой точки отказа.

OpenThread , выпущенный Google, представляет собой реализацию Thread с открытым исходным кодом. Несмотря на небольшой размер кода и объем памяти, OpenThread поддерживает все функции, определенные в спецификации потоков .

Симулятор сети OpenThread (OTNS) можно использовать для имитации сетей потоков путем запуска имитируемых узлов OpenThread на платформах posix. OTNS предоставляет простой в использовании веб-интерфейс (OTNS-Web) для визуализации и работы с смоделированными сетями потоков.

Шелк является полностью автоматизированной испытательной платформой для проверки функции OpenThread, функции и производительности системы с реальными устройствами.

Что вы узнаете

  • рамки проверки функциональности OpenThread по: Шелк
  • Построить OpenThread для реальных устройств с включенной функцией OTN,
  • Использование OTN,-Web-интерфейс для мониторинга состояния сети Thread сформированного путем запуска тестовых шелковых

Это codelab фокусируется на использовании шелка с OTN,. Другие особенности шелка и OTN, не охвачены.

Что вам понадобится

Аппаратное обеспечение:

  • 6 Dev платы Nordic Semiconductor nRF52840
  • 6 USB к Micro-USB кабель для подключения плат
  • USB хаб

Программное обеспечение:

  • Linux x86_64.
  • Гит .
  • Перейти 1.11+ .
  • Веб-браузер. OTNS-Web использует веб-браузер для отображения симуляций.

Предпосылки:

2. Предпосылки

Полный перед основным Codelabs

Проверка пакета предпосылок

Давайте удостоверимся все требования соблюдены.

  1. Run , which otns , чтобы проверить , если otns , выполняемые для поиска в $PATH .
  2. Run , which wpantund , чтобы убедиться , что wpantund доступен.
  3. Убедитесь , что ARM GNU, набор инструментов J-Link, и nrfjprog пакеты доступны.
  4. Убедитесь , что двоичный OpenThread можно сделать, бегая make -f examples/Makefile-nrf52840 под openthread папки.

Примечание: Пожалуйста , обратитесь к документации , связанной для созданного руководства. Предпосылкой # 1 от Simulate Networks темы с использованием OTN , а другие от построить сеть Thread с nRF52840 досками и OpenThread .

3. Настройка Шелк

Для клона шелковых и настроить среду, выполните следующие команды в соответствии исходного каталога:

$ git clone https://github.com/openthread/silk.git
$ cd silk
$ ./bootstrap.sh
$ sudo make install-cluster

Определение файла конфигурации аппаратного обеспечения

Для того, чтобы позволить Шелк собрать имеющиеся аппаратные ресурсы тестирования , подключенных к вашей машине, определить hwconfig.ini файл в следующем формате:

[DEFAULT]
ClusterID: 0
LayoutCenter: 300, 300
LayoutRadius: 100

[Dev-8A7D]
HwModel: Nrf52840
HwRev: 1.0
InterfaceSerialNumber: E1A5012E8A7D
USBInterfaceNumber: 1
DutSerial: 683536778

Инструмент под названием usbinfo устанавливается как часть шелка , который может быть использован , чтобы узнать серийный номер и номер интерфейса USB интерфейс. DutSerial это номер SN напечатан на чипе или отображается usbinfo для продуктов J-Link.

В LayoutCenter и LayoutRadius поля в [DEFAULT] по [DEFAULT] раздел определяет форму макета , когда устройства визуализируются на веб - интерфейс. Установка их значений, представленных здесь, может быть хорошей отправной точкой.

После этого, он определяет сечение для каждого тестируемого устройства и передает соответствующую информацию об оборудовании.

4. Компиляция OpenThread с OTN, включен

Построение изображения и мигающие

По умолчанию OpenThread устройства не испускают OTN, соответствующие сообщения. Для того, чтобы позволить Dev доски для сообщений о состоянии испускает войти интерфейсы, которые необходимы для визуализации OTN, выполните следующую команду в директории источника OpenThread, чтобы построить УТД изображение и преобразовать его в шестнадцатеричный формат.

$ git clone https://github.com/openthread/ot-nrf528xx.git --recursive
$ cd ot-nrf528xx
$ ./script/bootstrap
$ ./script/build nrf52840 USB_trans -DOT_COMMISSIONER=ON -DOT_JOINER=ON -DOT_OTNS=ON
$ cd ./build/bin
$ arm-none-eabi-objcopy -O ihex ot-ncp-ftd ot-ncp-ftd.hex

Для того, чтобы прошить доски, следуйте инструкциям на шаге 4 Строить сеть Thread Codelab использовать nrfjprog . После этого подключите все платы через USB порт СИФ на хост-машине. Тот же самый набор USB к Micro-USB кабель можно отсоединить от портов J-Link и подключается к USB-портам NRF из Дев доски nRF52840. Таким образом, только с этим исполнением 6 кабелей теста можно проводить. Для того, чтобы избежать хлопот, используйте 12 кабелей и подключения к обоим портам.

5. Запуск сервера OTN, с реальным режимом

Запуск OTN, с параметрами по умолчанию позволяет пользователю моделировать сеть темы. Для того, чтобы использовать его в качестве инструмента визуализации для реальной физической сети, запустите его:

otns -raw -real -ot-cli otns-silk-proxy

Эти аргументы говорят OTN , ожидать КПГРЫ и UDP сообщения , которые описывают , как следует визуализировать сеть Thread, вместо запуска несколько ot-cli процессов для моделирования сети. Ваш браузер должен автоматически открыть страницу визуализации с пустым холстом.

4dd5b41bf7e71334.png

6. Запуск Тестовые Шелк с поддержкой OTN,

Шелк является полностью автоматизированной испытательной платформой для проверки функции OpenThread, функции и производительности системы с реальными устройствами. Инструкции в проекте README чехлов , как использовать его.

silk_run_test.py файл , расположенный на silk/unit_tests дает хороший старт. Шелк обеспечивает поддержку OTN, при выполнении тестового случая. Поскольку OTN , сервис реального режима уже работает локально, нам просто нужно изменить silk_run_test.py файл с желаемыми места для файла журнала вывода, ввод сценариев тестирования и hwconfig.ini файла. -s localhost аргумент указывает Шелк для отправки сообщений OTN , на localhost .

Например, можно запустить тест с именем ot_test_form_network.py используя следующие изменения silk_run_test.py файла. /opt/openthread_test/ по умолчанию является путь Шелковые ИСПОЛЬЗУЕТ для вывода журнала и конфигурационный файл, но вы можете использовать любой путь.

silk_run_test.py

import datetime
import os

from silk.tests import silk_run

RESULT_LOG_PATH = '/opt/openthread_test/results/' + 'silk_run_' + \
                  datetime.datetime.today().strftime('%m-%d') + '/'
CONFIG_PATH = '/opt/openthread_test/'

os.chdir('~/src/silk/silk/tests/')

timestamp = datetime.datetime.today().strftime('%m-%d-%H:%M')

run_log_path = RESULT_LOG_PATH + 'test_run_on_' + timestamp + '/'

argv = [
    'tests/silk_run.py',
    '-v2',
    '-c', CONFIG_PATH + 'hwconfig.ini',
    '-d', run_log_path,
    '-s', 'localhost',
    'ot_test_form_network.py'
]

silk_run.SilkRunner(argv=argv)

Визуализации топологии сформированной сети будет отображаться на веб-интерфейс OTN,.

ee443b66e0a6620b.png

В верхнем левом углу шоу статистика визуализации, OT версии и название теста. В нижнем левом углу есть элементы управления окна журнала, который показан на рисунке справа. Первоначально, узлы добавляются, но не образуется сеть. В качестве тестового прогрессирует, формируются режимы и роли каждого изменения узла, а также ссылки.

5c38e2c72519e620.png

7. Поздравляем

Поздравляем, вы успешно запустить тест шелкового на физических устройствах темы и визуализировали его с помощью OTN,!

Вы выполнили тест шелкового с использованием доски развития, которые сверкали прошивки, которые имеют поддержку OTN,. Борта отчет о своем состоянии на сервер шелка, который контролирует и агрегаты все из них, и отправляют их на службу OTN, наряду с другой информацией испытаний. OTN, работает в режиме реального времени визуализирует сеть темы на веб-интерфейс.

Что дальше?

Попробуйте запустить другие тестовые случаи OpenThread включены в комплект шелкового.

дальнейшее чтение

Проверьте openthread.io и шелк для различных OpenThread ресурсов.

Справочные документы