User Tools

Site Tools


Visualizing Network Topology

To visualize the network topology you must run an experiment named WibedTopology using the overlay provided here:

The script requires an argument that indicates how many times the script will do a scan (the final signal strength is the average of all the measurements) i.e.

sh /root/ Wait until reboot of the nodes

sh /root/ 5 Once executed you can finish the experiment

Remeber to name the experiment WibedTopology

After you run the experiment, and when the results are available, you can click the Topology tab on the server to see the a visualization of the network topology. You will have to click the Redraw button to get the results that are based on your experiment. You only need to do this once.

Some info about the script

To avoid collisions the script waits 2*i seconds where i is its position in the list of the nodes that participate in the experiment. Below this method is compared to waiting a random amount of time.

Algorithm comparison

Since first algorithm uses random sleep time, starting from 10 nodes and above there is a big chance of collision when some nodes will be scanning the radio at the same time.

We now provide results obtained from both algorithms and try to compare them.

Run on 3 nodes with 3 scans per node.

Random Sleep Time

Node ID wibed-3b492c wibed-3e9dc4 wibed-3e9e8a
wibed-3b492c 0 48, 48, 48 39, 37, 39
wibed-3e9dc4 45, 46, 47 0 41, 41, 41
wibed-3e9e8a 37, 38, 40 41, 43, 41 0

List order sleep time

Node ID wibed-3b492c wibed-3e9dc4 wibed-3e9e8a
wibed-3b492c 0 49, 48, 48 38, 39, 39
wibed-3e9dc4 47, 47, 47 0 42, 42, 43
wibed-3e9e8a 39, 39, 38 41, 41, 40 0

Dummy algorithm seems to achieve less variation in measurements (3 dBm in random algorithm and only 1 in dummy). Results of all three scans stay more or less stable.

Notes on technologies used

UPD Use Vis.js, Python and JSON

Directed graph example Weighted graph example Python code to create a JSON

We could just build an HTML table that summarize the results, where columns and rows headers will represent nodes' IDs and content of the table will represent the signal strength between these nodes.

More fancy and user-friendly way to visualize results would be making a graph using one of the Javascript libraries. For example:

  1. Dracula - Seems to be the simplest one

I've tried to play around with the later. Data for the graph for now has to be put in the code of HTML page manually. We need to find out the way to take the data from file and dynamically process it to build a graph.

Here is what I've got: [Unpack to some folder and just run HTML file. All graph data is in the code of HTML file]

Wibed Server Wishes:

  1. Be able to delete previous experiments' tar archive from the “Add experiment” section on server
  2. If not possible to delete at least display the content of the archive
  3. So far it takes place on the page while providing zero information


Command to grep IPv6 address of the node

/sbin/ifconfig | grep -oE “[a-f0-9]{1,4}\::([a-f0-9]{1,4}\:){3}[a-f0-9]{1,4}\/64”

Command to find the number of line where my IPv6 address is listed in a file

grep -n “my IPv6 address” /path/to/the/file | cut -c1

iw dev mgmt0 scan | grep 'freq\|SSID: topo_wibed\|signal' > test-topo

final: grep 'freq\|SSID: wibed\|signal' test2 | grep -B 2 wibed

wibed-node Run a script to connect to the server and update node's current status
wibed-ssh Connect to any other node from the one you are connected to right now
wibed-config Run node's current settings
sudo ifconfig eth0 up Enables eth0 interface
ping6 ff02::2%eth0 shows all other nodes accessible from the one you are connected to right now
batctl to be explained
uci set file.field.parameter='value' Sets a value for parameter in a specific field of a file
uci commit use new settings *should be run each time you change some settings with uci command*
ip -6 neigh show dev mgmt0 Show all other nodes
wget http://SERVER/api/experimentNodes/EXP_NAME Get nodes involved in an experiment in JSON format
wibed/doc_topo.txt · Last modified: 2014/09/10 16:27 by pau