Reserving Packet OpenFlow resources

Since the OFAM version at UNIVBRIS OFELIA uses only a slightly modified version of the GENI RSpec v3 for OpenFlow resources, experimenters can use the following online resources to learn how to construct the OpenFlow reservation RSpec:

  1. http://groups.geni.net/geni/wiki/GENIExperimenter/RSpecs
  2. http://groups.geni.net/geni/wiki/HowTo/WriteOFv3Rspecs

In case that the resources above are removed from the internet, we included some information from these websites in this PDF document.

An example of a packet-only RSpec for UNIVBRIS OFELIA is included in the code section. It should be noted that this is an example only and experimenters are encouraged to use the listresources API call to verify that the switches and links are still the same.

There are several important parameters that need to be included in the reservation RSpec:

(a)    Contact Details: One important parameter that must be included in the reservation RSpec is the email attribute in the “openflow:sliver” element (line 2 in the example reservation RSpec). This is because OFAM will automatically send an email to the testbed manager to inform them to that there is a network flowspace that needs to be approved. Another email will be sent to inform the experimenter once his slice is approved by the testbed manager.

(b)   Controller IP: It is important to specify a controller which is reachable from within the UNIVBRIS OFELIA, e.g. 10.216.22.x IP that is obtained when an experimenter creates a virtual machine on the testbed. This is because of the firewall around the UNIVBRIS OFELIA makes it impossible for Flowvisor to receive any messages from controllers which are found outside the Ofelia private network (10.216. network).

(c)    VLAN Specification: A VLAN should be specified in the “openflow:match” element of the reservation RSpec. It is very likely that the testbed manager will have to allocate another VLAN than the one requested since the VLAN requested could have already been allocated. The flowspace allocated to the experimenter can be checked by the experimenter by using the two following commands:

  1. sudo python omni.py -a  https://137.222.204.27:3626/sfa/2/ -V2 sliverstatus sfatest where sfatest is the name of his slice
  2. sudo python omni.py -a https://137.222.204.27:3626/sfa/2/ -V2 listresources sfatest

It should be noted that only when the result of the first command shows that the sliver has been “approved” (example in Table 1) that the second command above will give the flowspace that is currently allocated to the experimenter. The flowspace could be still in pending stage (Table 2) and the first command will say so.

(d)   Compute ports: It is important to include the OpenFlow ports of the switches which are connected to the virtualization servers into the reservation RSpec. Without which, the traffic coming from the experimenters’ virtual machines will not be included in the flowspace of the experimenter and can’t be controlled by the controller of the experimenter.

It is easy to know what are these OpenFlow ports by doing a listresources on OFAM (see page) and identifying the relevant “openflow:link” elements by checking for keyword “compute” in the “component_id” of the link.

For example in the advertisement RSpec in the code section, line 425 (urn:publicid:IDN+compute:openflow:ofam:univbris+link+05:00:00:00:00:00:00:01_6_cseedelphi_eth2.4000) shows that the virtualization server cseedelphi is connected to the switch with DPID 05:00:00:00:00:00:00:01 on port 6. While the virtualization server cseedurham is connected to the switch with DPID 05:00:00:00:00:00:00:04 on port 8 as shown in line 438. An experimenter should only send to the UNIVBRIS OFELIA OFAM aggregate manager the network end point of the link and not the end point representing the server/port end of the link. There is no need to reserve the interface of the server since this is shared by default among all experimenters when they have a virtual machine on the server.

The keyword “compute:” should not be included in any “component_id” in the reservation RSpecs. The keyword is only used as an annotation for experimenters to interpret the component. This is really important in the case of jFed Experimenter.

(e) Federation ports (inter-island links): the UNIVBRIS OFELIA testbed is connected to other testbeds which can be part of either Fed4FIRE or other projects such as ALIEN. Similar to the process of identifying compute ports, an experimenter can identify the federation links by looking at the “component_id” for the keyword “federation”. For example in the Ad Rspecs of OFAM, line 213 shows a federation link between UNIVBRIS OFELIA (switch with DPID 05:00:00:00:00:00:00:03 with port 7) and i2CAT OFELIA (switch with DPID 00:10:00:00:00:00:00:03 with port 9). The owner of one end-point of the link can be identified by looking at the child elements of the “openflow:link” tag of the link, they specify the component manager id of each link. An experimenter should only send to the UNIVBRIS OFELIA OFAM aggregate manager the end point in the UNIVBRIS OFELIA island and separately reserve the other end point in the other island by using the appropriate different aggregate manager.

The keyword “federation:” should not be included in any “component_id” in the reservation RSpecs. The keyword is only used as an annotation for experimenters to interpret the component. This is really important in the case of jFed Experimenter.

Approval of Flowspace

Experimenters can check the approval status of their flowspace by using the following command:

sudo python omni.py -a  https://137.222.204.27:3626/sfa/2/ -V2 sliverstatus sfatest

where sfatest is the name of his slice. If the flowspace status is “approved”, experimenters can see what OpenFlow network resources have been allocated to them by using the command:

sudo python omni.py -a  https://137.222.204.27:3626/sfa/2/ -V2 listresources sfatest

The Figure 1.0 below shows the work flow for the approval of a flowspace at UNIVBRIS OFELIA. In essence, OpenFlow requests which contain packet flowspaces with VLANs specified are automatically approved. Experimenters usually get the VLANs that they request if they are free, otherwise free VLANs are allocated to the experimenter.

flowspace_approval

Figure 1: Work flow for flowspace approval at UNIVBRIS OFELIA.