This is an implementation of the Dynamic Hybrid Routing: Achieve Load Balancing for Changing Traffic Demands
It is built on top of Brandon Heller's Ripl library, Stanford CS244 Final Project and POX controller with minor changes to both to support version consistency and Hedera functionality.
Use a CS 244 Mininet VM to run the code (either from the class website or an Amazon EC2 instance).
-
Switch to the CS 244 version of Mininet
$ cd ~/mininet
$ git checkout -b cs244 origin/class/cs244
-
Fix the module dependencies for this version
$ vim ~/mininet/mininet/moduledeps.py
(^change this line: "-OVS_KMOD = 'openvswitch_mod'" to: "OVS_KMOD = 'openvswitch'")
-
Install the correct version
$ cd ~/mininet
$ sudo make install
-
Switch to the 'dart' branch of POX
$ cd ~/pox
$ git checkout dart
$ git pull origin dart
-
Clone our project repo
$ cd ~
$ git clone https://github.com/lyzsysu/dhrpox.git
cd dhrpox/
$ sudo python setup.py install
-
Run it!
$ cd ~/dhrpox
Terminal #1 - start the remote controller
$ sudo ~/pox/pox.py controllers.robustpox --topo=asym
Terminal #2 - start the mininet
$ sudo python ~/dhrpox/abilene.py dhr p.json
-
Debug
you can use the following comand to open an abilene topo to do some test
$ sudo mn --custom ~/dhrpox/ripllib/mn.py --topo asym --controller=remote --link=tc --mac