GithubHelp home page GithubHelp logo

dtn_simulator's Introduction

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

dtn_simulator's People

Contributors

irigon avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.