wiki:HowTo/OpenFlow1.3

Version 3 (modified by lnevers@bbn.com, 7 years ago) (diff)

--

OpenFlow 1.3 on InstaGENI Hardware Switch

Several InstaGENI racks have hardware switches that support OpenFlow 1.3. See the GENI Aggregates to determine which version of OpenFlow each GENI site supports in the OF Supported column.

Run an OpenFlow 1.3 Controller

  1. To request an OpenFlow 1.3 controller host with supported OF controllers installed and ready to run you can use the request RSPec https://raw.githubusercontent.com/GENI-NSF/geni-tutorials/master/OpenFlowCtrls/Controllers_all.xml or this request RSpec is also abailabel in the GENI Portal RSpec as "XEN OpenFlow Controllers".
  1. Once the controller node is up, login to the controller and download a Ryu module developed specifically for the InstaGENI OF 1.3 hardware switches. This Ryu module handles the required use of Rule Table ID 100 for HP switches:
     wget https://raw.githubusercontent.com/GENI-NSF/geni-support/master/Utilities/simple_switch_13_ig.py
     cp simple_switch_13_ig.py /tmp/ryu/app/simple_switch_13_ig.py
     cd /tmp/ryu
     ./bin/ryu-manager ryu/app/simple_switch_13_ig.py
    

You are now running an OpenFlow 1.3 simple switch module!

  1. While logged in determine the IP address of the controller hosts to use in the next section. The default port for openflow is 6633 for Ryu.

Ran the OpenFlow Experiment

  1. Selected OF 1.3 aggregate sites from the GENI Aggregates page, define a topology that has nodes at different GENI sites using stitched links. The key is the link, which must be associated with the controller.

Following is an example for OpenFlow over a stitched link between GPO IG and VT IG:

  <link client_id="link">
    <component_manager name="urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm"/>
    <component_manager name="urn:publicid:IDN+instageni.arc.vt.edu+authority+cm"/>
    <interface_ref client_id="ig-gpo:if0"/>
    <interface_ref client_id="ig-vt:if0"/>
    <property source_id="ig-gpo:if0" dest_id="ig-vt:if0" />
    <property source_id="ig-vt:if0" dest_id="ig-gpo:if0" />
     <emulab:openflow_controller url="tcp:XX.XX.XX.XX:6633" />
  </link>

where: XX.XX.XX.XX is your controller IP address.

If you are using the Portal select the stitched link between the 2 sites and in the left-hand panel:

  1. choose "Stitched" in the "Link Type" pull-down.
  2. Click on the "Openflow" option, which will enable a blank field where you can enter "tcp:XX.XX.XX.XX:6633", where: XX.XX.XX.XX is your controller IP address.
  1. Reserve the resources and you are now ready to run your OpenFlow experiment.