Changes between Version 24 and Version 25 of GENIExperimenter/ExperimentExample-OF-FOAM


Ignore:
Timestamp:
04/03/12 13:34:39 (12 years ago)
Author:
lnevers@bbn.com
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GENIExperimenter/ExperimentExample-OF-FOAM

    v24 v25  
    77For experimenters who desire control over the network switching fabric in their slices, !OpenFlow provides increased flexibility.  Your experiment will incorporate an !OpenFlow controller. Many experimenters use existing controller code as-is, some use controllers with relatively simple modifications, and some experimenters have written their own controller.  The GPO is available to help design your controller and plan your experiment configuration.  Feel free to contact us at [mailto:help@geni.net].
    88
    9 The example captured in this page uses credentials from pgeni.gpolab.bbn.com, the GPO ProtoGENI Clearinghouse, to set up an experiment that includes 3 meso-scale !OpenFlow BBN, Wisconsin and Clemson each with a MyPLC compute resource.
     9This experiment uses credentials from the GPO ProtoGENI Clearinghouse (pgeni.gpolab.bbn.com) to set up a 3 Meso-scale sites !OpenFlow experiment. The sites are includes BBN, Wisconsin and Clemson each with a MyPLC compute resource. If you are interested in using PG resources, see the [http://groups.geni.net/geni/wiki/HelloGENI HelloGENI] experiment page.
    1010
    1111[[Image(OF-Experiment-example.jpg)]]
     
    5656A list of Aggregate managers is compiled in the [http://groups.geni.net/geni/wiki/GeniAggregate GENI Aggregate] page, if your site is not listed on this page you should contact your site administrator, or help@geni.net.
    5757
     58== Reserve GENI IP subnet ==
     59
     60In the Meso-scale network a layer 3 experiment requires its own separate IP subnet in order to control all traffic without interfering with traffic from other experiments. At this point you need to request an IP subnet  from the gpo-infra@geni.net mail list. The request should also specify a duration.
     61
     62
    5863== Determine Resources Availability ==
    5964
    60 Each of the 3 sites will requires an !OpenFlow RSpec and a compute resource RSpec. To find out what resources are available use Omni tools to get a list of available resources.  FOllowing is a list of available GENI Aggregate Managers:
    61 
    62 ||'''Site'''|| '''MyPLC Aggregate URL'''           || ''' FOAM Aggregate URL '''   ||
     65Each of the 3 sites will requires an !OpenFlow RSpec and a compute resource RSpec. Also an !OpenFlow RSpec will be required for the GENI Core (NLR in this example).
     66To find out what resources are available use Omni tools to get a list of available resources.  Following is a list of MyPLC and FOAM aggregates available in the meso-scale network:
     67
     68||'''Site'''|| '''MyPLC Aggregate URL'''           || ''' FOAM Aggregate URL '''                   ||
    6369||    BBN   || http://myplc.gpolab.bbn.com:12346/  ||https://foam.gpolab.bbn.com:3626/foam/gapi/1
    6470|| Clemson  || http://myplc.clemson.edu:12346/     ||https://foam.clemson.edu:3626/foam/gapi/1
     
    7278||Wisconsin ||https://wings-openflow-1.wail.wisc.edu:12346/||https://foam.wail.wisc.edu:3626/foam/gapi/1
    7379
    74 This experiment uses Omni V1.6.1 to set up the experiment. As a first step, the experimenter determines the available resources at each of the Aggregate Managers.  Following are the omni commands issued to get the manifests for available resources:
    75 
    76  1. Clemson FOAM and MyPLC aggregates:
    77 {{{
    78  ./src/omni.py -a https://foam.clemson.edu:3626/foam/gapi/1 listresources -o   # generates output file rspec-foam-clemson-edu-3626-foam-gapi-1.xml
     80For complete list of available aggregates see the available [http://groups.geni.net/geni/wiki/GeniAggregate GENI Aggregates] page. 
     81
     82== Define Compute Resources RSpecs ==
     83
     84This experiment uses Omni V1.6.1 to set up the experiment. As a first step, the experimenter determines the available resources at each of the MyPLC Aggregate Managers.  Following are the omni commands issued to get the manifests for available compute resources:
     85
     86 1. Clemson MyPLC aggregate:
     87{{{
    7988 ./src/omni.py -a  http://myplc.clemson.edu:12346/ listresources -o            # generates rspec-myplc-clemson-edu-12346-.xml
    8089}}}
    81  2. Wisconsin FOAM and MyPLC aggregates:
    82 {{{
    83  ./src/omni.py -a https://foam.wail.wisc.edu:3626/foam/gapi/1 listresources -o    # generates rspec-foam-wail-wisc-edu-3626-foam-gapi-1.xml
     90 2. Wisconsin MyPLC aggregate:
     91{{{
    8492 ./src/omni.py -a https://wings-openflow-1.wail.wisc.edu:12346/  listresources -o # rspec-wings-openflow-1-wail-wisc-edu-12346-.xml
    8593}}}
    86  3. BBN FOAM and MyPLC aggregates:
     94 3. BBN MyPLC aggregates:
    8795{{{
    8896 ./src/omni.py -a http://myplc.gpolab.bbn.com:12346/ listresources -o            # generates rspec-myplc-gpolab-bbn-com-12346-.xml
    89  ./src/omni.py -a https://foam.gpolab.bbn.com:3626/foam/gapi/1 listresources -o         # generates rspec-foam-gpolab-bbn-com-3626-foam-gapi-1.xml
    90 }}}
    91  4. NLR !OpenFlow Core FOAM server:
    92 {{{
    93 $ ./src/omni.py -a https://foam.nlr.net:3626/foam/gapi/1 -o listresources           # generates rspec-foam-nlr-net-3626-foam-gapi-1.xml
    94 }}}
    95 
    96 Each of the omni command above used the -o argument to get the listresources output to a file, all output files are attached to this page as a reference.  The Advertisement RSpec generated by the listresources are then reviewed to generate the Requests RSpecs to reserve the resources. Information in these files provides the switch and the port URN information to be used in making the OF flowspace reservation. 
    97 
    98 The above results will give you some insight into what is available, but it is recommended that you coordinate with the site contact to ensure RSpec accuracy for each of the OF Aggregate Managers. 
    99 
    100 
    101 == Define Compute Resources RSpecs ==
    102 
    103 The section shows the compute resources RSpec defined based on the output of the listresources commands.
    104 
    105 '''BBN ProteGENI Compute Resource RSpec '''
    106 {{{
    107 #!xml
    108 <?xml version="1.0" ?>
    109 <!-- Resources at AM:
    110         URN: unspecified_AM_URN
    111         URL: http://www.pgeni.gpolab.bbn.com/protogeni/xmlrpc/am
    112  -->
    113 <rspec type="request" xmlns="http://www.protogeni.net/resources/rspec/2"
    114         xmlns:emulab="http://www.protogeni.net/resources/rspec/ext/emulab/1"
    115         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    116         xsi:schemaLocation="http://www.protogeni.net/resources/rspec/2 http://www.protogeni.net/resources/rspec/2/request.xsd
    117         http://www.protogeni.net/resources/rspec/ext/emulab/1 http://www.protogeni.net/resources/rspec/ext/emulab/1/ptop_extension.xsd "> 
    118   <node component_id="urn:publicid:IDN+pgeni.gpolab.bbn.com+node+pc5"
    119         component_manager_id="urn:publicid:IDN+pgeni.gpolab.bbn.com+authority+cm"
    120         component_name="pc5" exclusive="true">   
    121       <sliver_type name="raw-pc">     
    122       </sliver_type>   
    123   </node> 
    124 </rspec>
     97}}}
     98
     99Each of the omni command above used the -o argument to get the listresources output to a file, all output files are attached to this page as a reference.  The Advertisement RSpec generated by the listresources are then reviewed to generate the request RSpecs to reserve the resources.  Following are the compute resources RSpec defined based on the output of the listresources commands above.
     100
     101'''BBN MyPLC Compute Resource RSpec '''
     102{{{
     103<?xml version="1.0"?>
     104<!--
     105This rspec will create a container on each of the BBN production MyPLC plnodes.
     106
     107AM: https://myplc.gpolab.bbn.com:12346/
     108-->
     109<RSpec type="SFA">
     110  <network name="plc.gpolab">
     111       <node component_id="urn:publicid:IDN+plc:gpolab:gpolab+node+navis.gpolab.bbn.com"
     112       component_manager_id="urn:publicid:IDN+plc:gpolab+authority+sa"
     113       node_id="n1" site_id="urn:publicid:IDN+plc:gpolab:gpolab+authority+sa">     
     114            <hostname>        navis.gpolab.bbn.com      </hostname>     
     115        </node>   
     116  </network>
     117</RSpec>
    125118}}}
    126119
     
    168161== Define !OpenFlow Network Resources Rspecs ==
    169162
    170 The OF RSpecs used for this example assumes that the flowspace between the 3 sites is based on traffic type and port. This section has two parts which:
    171  * Walks through how to figure out the OF network path
    172  * Show RSpec defined as a result of the walkthrough
     163This section defines how to figure out the OF network path for youre rspec. To write an OF RSpec you must determine the end-to-end OF path that will be used for the experiment. Following is an outline of the process to determine the content of your OF RSpec:
     164
     165Step 1. Collect listresources from all FOAM Aggregate.  The manifest RSpec details all resources at the aggregate, but does not provide any insight into whether they are available.
     166Step 2. Review [http://groups.geni.net/geni/wiki/GeniAggregate GeniAggregate] to determine how each MyPLC host maps to the Site's OpenFlow switch.
     167 ports are
     168Step 3. Using guidelines from the [http://groups.geni.net/geni/wiki/HowTo/WriteOFv3Rspecs#WritingOpenFlowv3requestrspecs Writing OF V3 RSpec] page merge the information from step 1 and 2 to generate the request RSpecs.
     169
     170Each of the above is covered in detail below:
     171
     172'' ''' Step 1''' ''. Collect listresources from all FOAM Aggregate:
     173
     174 1. Clemson FOAM and MyPLC aggregates:
     175{{{
     176 ./src/omni.py -a https://foam.clemson.edu:3626/foam/gapi/1 listresources -o   # generates output file rspec-foam-clemson-edu-3626-foam-gapi-1.xml
     177}}}
     178 2. Wisconsin FOAM and MyPLC aggregates:
     179{{{
     180 ./src/omni.py -a https://foam.wail.wisc.edu:3626/foam/gapi/1 listresources -o    # generates rspec-foam-wail-wisc-edu-3626-foam-gapi-1.xml
     181}}}
     182 3. BBN FOAM and MyPLC aggregates:
     183{{{
     184 ./src/omni.py -a https://foam.gpolab.bbn.com:3626/foam/gapi/1 listresources -o         # generates rspec-foam-gpolab-bbn-com-3626-foam-gapi-1.xml
     185}}}
     186 4. NLR !OpenFlow Core FOAM server:
     187{{{
     188$ ./src/omni.py -a https://foam.nlr.net:3626/foam/gapi/1 -o listresources           # generates rspec-foam-nlr-net-3626-foam-gapi-1.xml
     189}}}
     190Information in these files provides the switch and the port information to be used in making the OF flowspace reservation. 
     191
     192'' ''' Step 2''' ''. Review [http://groups.geni.net/geni/wiki/GeniAggregate GeniAggregate] to determine MyPLC hosts mapping to the Site's OpenFlow switch.
     193
     194
     195'' '''Step 3''' ''. Merge Step 1 and 2 to generate request RSpecs.
     196
    173197
    174198=== Determine OF network path ===
    175199
    176 Frome the listresources output files (attached to this page) determined the sites DPIDs
     200From the listresources output files (attached to this page) determined the sites DPIDs
    177201 
    178202''' BBN FOAM''' - Aggregate URL https://foam.gpolab.bbn.com:3626/foam/gapi/1
    179 || dpid="06:a4:00:12:e2:b8:a5:d0"  ||
    180 || dpid="06:a4:00:24:a8:c4:b9:00"  ||
    181 || dpid="06:c6:00:24:a8:c4:b9:00"  ||
    182 || dpid="06:d6:00:12:e2:b8:a5:d0"  ||
    183 || dpid="06:d6:00:24:a8:c4:b9:00"  ||
    184 
    185203''' FOAM Clemson''' - Aggregate https://foam.clemson.edu:3626/foam/gapi/1
    186 || dpid="00:00:13:01:27:06:20:11"  ||
    187 || dpid="06:c6:00:26:f1:3f:e4:80"  ||
    188 || dpid="06:d6:00:26:f1:3f:e4:80"  ||
    189 
    190 
    191204'''FOAM NLR''' -   Aggregate URL https://foam.nlr.net:3626/foam/gapi/1             
    192 || dpid="0e:83:00:23:47:c8:bc:00"  ||
    193 || dpid="0e:83:00:23:47:ca:bc:40"  ||
    194 || dpid="0e:83:00:24:a8:d2:48:00"  ||
    195 || dpid="0e:83:00:24:a8:d2:b8:40"  ||
    196 || dpid="0e:83:00:26:f1:40:a8:00"  ||
    197 || dpid="0e:84:00:23:47:c8:bc:00"  ||
    198 || dpid="0e:84:00:23:47:ca:bc:40"  ||
    199 || dpid="0e:84:00:24:a8:d2:48:00"  ||
    200 || dpid="0e:84:00:24:a8:d2:b8:40"  ||
    201 || dpid="0e:84:00:26:f1:40:a8:00"  ||
    202 
    203205''' FOAM Wisconsin''' - Aggregate URL https://foam.wail.wisc.edu:3626/foam/gapi/1       
    204 || dpid="06:c6:00:21:f7:be:8d:00"  ||
    205 || dpid="06:c6:00:23:47:cc:44:00"  ||
    206 || dpid="06:d0:00:21:f7:be:8d:00"  ||
    207 || dpid="06:d0:00:23:47:cc:44:00"  ||
    208 || dpid="06:d6:00:21:f7:be:8d:00"  ||
    209 || dpid="06:d6:00:23:47:cc:44:00"  ||
    210 || dpid="06:d6:00:23:47:cc:c4:80"  ||
    211206
    212207
     
    240235== Create Slice and Request Resources ==
    241236
    242 Using the RSpecs that define the required OF flowspace, you can now request OF resources with Omni. First create a slice using your GPO Clearinghouse credentials as defined in the omni_config. Note that the slice name should be meaningful to you and then create a sliver for each resource aggregate.  In this example there are 4 OF aggregates (one per site plus one for the GENI core) and 3 compute resource aggregates (1 PG & 2 MyPLC), which maps to creating 7 slivers, and the following commands are executed:
     237Using the RSpecs that define the required OF flowspace, you can now request OF resources with Omni. First create a slice using your GPO Clearinghouse credentials as defined in the omni_config. Note that the slice name should be meaningful to you and then create a sliver for each resource aggregate.  In this example there are 4 OF aggregates (one per site plus one for the GENI core) and 3 compute resource aggregates (3 MyPLC), which maps to creating 7 slivers, and the following commands are executed:
    243238{{{
    244239 ./src/omni.py createslice 3sites-OF-Exp