Skip to content

Latest commit

 

History

History
82 lines (56 loc) · 2.44 KB

README.md

File metadata and controls

82 lines (56 loc) · 2.44 KB

DTN_simulator

Simulate Disruptive tolerant networks with docker containers

Requirements:

Installation: After installing the requirements, download this repo under $POX/ext

Simulation diagram:

Starting pox

How to simulate a DTN network:

A simulation uses container net to create the network topology, pox to as SDN controller and a simple application to set and delete connection in runtime based on a schedule. By now a description of mac to ports is also needed, but it should later on disappear, since this information can be requested from OVSwitch by SDN controller. The visualisation APP is red, because it is not yet implemented. The goal is to allow the network visualization in runtime based on events triggered by the SDN controller.

Example:

  • Starts the controller using the messenger plugin
$ cd $POXDIR/
pox$ ./pox.py messenger messenger.tcp_transport scheduled_controller

A successful start looks as follows: Starting pox

obs: You can use the option DEBUG, you can ignore the output: "WARNING:scheduled_controller:Dropping packet". Currently we are dropping everything but the communication between the nodes we explicit allow.

Running for debug:

$ cd $POXDIR/
pox$ ./pox.py log.level --DEBUG messenger messenger.tcp_transport scheduled_controller
  • In another window, run containernet (so far just flat topology is supported)
sudo mn --arp --topo single,3 --mac --switch ovsk --controller remote

obs.: --arp and --mac are required.

The output should look like this: Starting containers

Notice also that in the first window the pox status should be "connected".

So far we have the containers, switch and controller running.

The APP

The application needs as input mac2ports mapping and the schedule. There is a simple example on $POXDIR/ext/infos/cmds_test.txt Based on this file the app is able to tell the controller which flows it should enable/disable and the right time to it.

Running the app

~/pox/ext$ python scheduler.py

An example of a text file for feeding the controller and schedule is provided on "simulator/infos/cmds_test.txt"

The output of a simple run should look as follows:

Starting containers