This sample uses virtual-hub tool from zephyrproject-rtos/net-tools to setup a multi-node RPL network on top of QEMU. This way, is possible to validate different network topologies in virtualized environment.
In this sample, we will build a three node graph connected like a row:
root <-> node1 <-> node2
Requirements
First of all, we must clone net-tools repository, and build virtual-hub:
cd virtual-hub mkdir build && cd build cmake .. make
Building and Running
cd root mkdir build && cd build cmake -DQEMU_PIPE_ID=1 .. make make node
cd node mkdir build-1 && cd build-1 cmake -DQEMU_PIPE_ID=2 .. make make node
cd node mkdir build-2 && cd build-2 cmake -DQEMU_PIPE_ID=3 .. make make node
cd virtual-hub/build ./hub ../input.csv
select net route
You should see two routes pointing to both clients application.
Virtual-Hub Notes
When trying to reboot/drop a node from network you must also reboot the virtual-hub to keep it working properly.
For more details about how to customize the network, follow the README instructions from virtual-hub repository.