Whitefield предоставляет среду моделирования для сетей сенсорных сетей, объединяя реалистичное моделирование уровня PHY/MAC с использованием нативного режима популярных стеков/OSES IOT, таких как Contiki/Riot/Openthread/Zephyr/Freertos/OT-RTOS. Таким образом, можно использовать существующую реализацию стека как есть и проверить ее поверх реалистичного РЧ -моделирования.
Уайтфилд использует уровень PHY/MAC, предоставляемый популярными симуляторами (например, NS3-LRWPAN/PLC) и свободно объединяет его с ограниченными сетевыми стеками, поддерживаемыми популярными IOT OSE, что обеспечивает лучшие из обоих миров. Он обеспечивает общую визуализацию и инструменты OAM (журналы, PCAP, оболочка), которые упрощает мониторинг и устранение неполадок.
Типичные варианты использования Уайтфилда:

Терминология :
Авиакомпания: авиакомпания относится к реализации PHY/MAC/RDC, предоставляемой сторонними симуляторами, такими как NS3/Castalia-AMnet ++. Обеспечивает управление конфигурацией и инструменты OAM, которые работают в любых сторонних симуляторах. Он взаимодействует с Commline для отправки/Recv -сообщений в/из Stackline.
Commline: очередь сообщений и соответствующие интерфейсы, которые отделяют авиакомпанию и стек. Все сообщения, будь то сетевые полезные нагрузки или сообщения OAM транспортируются с использованием Commline.
Stackline: 6lowpan/сетевой уровень и вышеупомянутый стек протоколов, предоставленный сторонним Ios Oses, такие как Contiki/Riot. Новая платформа добавляется в таких OSES для взаимодействия с Уайтфилдом. Стек протоколов с приложением будет использоваться как есть из этих OSES.
git clone https://github.com/whitefield-framework/whitefield
cd whitefield
./scripts/setup.sh #This may take a while...
make
git clone https://github.com/whitefield-framework/whitefield
cd whitefield
vagrant up # <- step takes time
vagrant ssh
git clone https://github.com/whitefield-framework/whitefield
cd whitefield
IMG=focal64 vagrant up # <- step takes time
IMG=focal64 vagrant ssh
Выполнить инструкции :
$ cd whitefield
#Start Whitefield
$ ./invoke_whitefield.sh config/wf.cfg
#Monitor whitefield status
$ ./scripts/monitor.sh
#View live network toplogy open http://localhost:8080/ in a browser
$ ./canvas/canvas.py
#Whitefield shell
$ ./scripts/wfshell help
#Stop whitefield
$ ./scripts/wfshell stop_whitefield