Giter Site home page Giter Site logo

lemonbigbig / exp_bflows Goto Github PK

View Code? Open in Web Editor NEW

This project forked from huangmachi/exp_bflows

0.0 0.0 0.0 88.4 MB

exp_BFlows is an experiment to compare the performance of BFlows with ECMP, PureSDN, Hedera and NonBlocking network.

Shell 2.75% Python 97.25%

exp_bflows's Introduction

exp_BFlows

exp_BFlows is an experiment to compare the performance of BFlows with ECMP, PureSDN, Hedera and NonBlocking network.

Prerequisites

The following softwares should have been installed in your machine.

  • Mininet: git clone git://github.com/mininet/mininet; mininet/util/install.sh -a
  • Ryu: git clone git://github.com/osrg/ryu.git; cd ryu; pip install .
  • bwm-ng: apt-get install bwm-ng
  • Networkx: pip install networkx
  • Numpy: pip install numpy
  • Matplotlib: apt-get install python-matplotlib

Make some change

To register parsing parameters, you NEED to add the following code into the end of ryu/ryu/flags.py.

CONF.register_cli_opts([
    # k_shortest_forwarding
    cfg.IntOpt('k_paths', default=4, help='number of candidate paths of KSP.'),
    cfg.StrOpt('weight', default='bw', help='weight type of computing shortest path.'),
    cfg.IntOpt('fanout', default=4, help='switch fanout number.')])

Reinstall Ryu

You must reinstall Ryu, so that you can run the new code. In the top directory of Ryu project:

sudo python setup.py install

Start

Note: Before doing the experiment, you should change the controller's IP address from '192.168.56.101' to your own machine's eth0 IP address in the fattree.py module in each application, because '192.168.56.101' is my computer's eth0 IP address (Try 'ifconfig' in your Ubuntu to find out the eth0's IP address). Otherwise, the switches can't connect to the controller.

Just start it as follows, you will find the results in the 'results' directory.

$ ./run_experiment.sh 4 2.0 1 60

or

$ ./run_experiment.sh 8 5.0 3 60

The first parameter '4' means execute the experiment in a 'K=4' FatTree network; the second parameter '2.0' means the total CPUs allocated to the hosts; the third parameter '1' means each host launches one Iperf TCP flows, the last parameter '60' means the traffic will last for 60 seconds. It will takes you about 48 hours for the 'K=4' experiment.

Author

Brought to you by Huang MaChi (Chongqing University of Posts and Telecommunications, Chongqing, China).

If you have any question, you can email me at [email protected]. Don't forget to STAR this repository!

Enjoy it!

exp_bflows's People

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.