| # RPL Mesh Network over QEMU |
| |
| Overview |
| ******** |
| |
| 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 |
| ******************** |
| |
| 1. Build and run the RPL root application: |
| ``` |
| cd root |
| mkdir build && cd build |
| cmake -DQEMU_PIPE_ID=1 .. |
| make |
| make node |
| ``` |
| |
| 2. Build and run the first RPL node application: |
| ``` |
| cd node |
| mkdir build-1 && cd build-1 |
| cmake -DQEMU_PIPE_ID=2 .. |
| make |
| make node |
| ``` |
| |
| 3. Build and run the second RPL node application: |
| ``` |
| cd node |
| mkdir build-2 && cd build-2 |
| cmake -DQEMU_PIPE_ID=3 .. |
| make |
| make node |
| ``` |
| |
| 4. Now we should run the virtual-hub, which will connect |
| all the pipes according to the csv file: |
| ``` |
| cd virtual-hub/build |
| ./hub ../input.csv |
| ``` |
| |
| 5. Wait until the network is fine, you can check it |
| using net shell on root application: |
| ``` |
| 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. |