== 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
brandonheller/riplpox
RipL-POX (Ripcord-Lite for POX): A simple network controller for OpenFlow-based data centers
PythonGPL-2.0