-
Notifications
You must be signed in to change notification settings - Fork 28
/
README
54 lines (34 loc) · 1.79 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
== What is it? ==
RipL-POX (Ripcord-Lite for POX) is a simple data center controller built on RipL.
== Why should you use it ==
RipL-POX provides an example of an OpenFlow controller that uses a static network description to create paths.
It should work out-of-the-box to give you a functioning (but unoptimized) OpenFlow 1.0 data center controller based on a topology description from RipL.
There are two main modes:
- Proactive routing pushes down all possible paths when all switches come up.
- Reactive routing pushes down full OpenFlow N-tuple paths for each flow.
For each mode, you can choose to use spanning tree routing, random routing, or routing based on a hash function.
The hash function depends on the mode:
- In proactive mode, hashing is based on L2 fields.
- In reactive mode, hashing comes from the ECMP 5-tuple.
== Install ==
See INSTALL for install first.
== Running RipL on POX with Mininet ==
RipL-POX must use the exact same topology as Mininet. Order shouldn't matter, but to reduce the initial debug output caused by IPv6 link-layer discovery messages that get broadcast, start up the topology first:
# Running Mininet w/a Fat Tree topology, in a second window:
cd ~/
sudo mn --custom ~/ripl/ripl/mn.py --topo ft,4 --controller=remote --mac
# Run RipL-POX in reactive mode w/random routing
cd ~/
~/pox/pox.py riplpox.riplpox --topo=ft,4 --routing=random --mode=reactive
That's it - at this point, your network should run.
Here are other invocation examples:
# Run RipL-POX in reactive mode w/hashed routing
cd ~/
~/pox/pox.py riplpox.riplpox --topo=ft,4 --routing=hashed --mode=reactive
# Run RipL-POX in proactive mode w/spanning-tree routing
cd ~/
~/pox/pox.py riplpox.riplpox --topo=ft,4 --routing=st --mode=proactive
== Verifying the setup ==
In mininet console:
pingall
iperf