Changes between Version 26 and Version 27 of GENIExperimenter/ExperimentExample-OF-FOAM


Ignore:
Timestamp:
04/04/12 17:11:18 (12 years ago)
Author:
lnevers@bbn.com
Comment:

--

Legend:

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

    v26 v27  
    33= GENI !OpenFlow Experiment Example 2 =
    44
    5 This page illustrates an !OpenFlow (OF) example for the [wiki:HowToUseOmni Omni How-to] page. [http://www.openflow.org/ OpenFlow] is used for the control of the network resources in the GENI backbone and at meso-scale campus locations.  Experimenters can use these GENI resources without learning !OpenFlow.  The GPO [mailto:help@geni.net] can help arrange connectivity across your GENI slice, including IP connectivity and/or layer 2 VLANs.
    6 
    7 For 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].
    8 
    9 This 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.
     5This page illustrates an !OpenFlow (OF) example for the [wiki:HowToUseOmni Omni How-to] page. [http://www.openflow.org/ OpenFlow] is used for the control of the network resources in the GENI backbone and at meso-scale campus locations.  Experimenters can use GENI resources without learning !OpenFlow. Experimenters can choose to control the network switching fabric in their slices by running an !OpenFlow controller. Many experimenters use existing !OpenFlow 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].
     6
     7The experiment in this page uses credentials from the GPO ProtoGENI Clearinghouse (pgeni.gpolab.bbn.com) to set up a 3 Meso-scale sites !OpenFlow experiment. The sites are  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 for an OpenFlow experiment using PG nodes.
    108
    119[[Image(OF-Experiment-example.jpg)]]
    1210
    13 Omni tools are used to reserve resources in each of the site's !FlowVisor !OpenFlow Aggregate Manager (FOAM) and GENI Aggregate Managers. Steps required to set up the 3 Sites !OpenFlow experiment are detailed in this page:
     11Omni tools are used to reserve resources in each of the site's !FlowVisor !OpenFlow Aggregate Manager (FOAM) and GENI Aggregate Managers. Steps required to set up this !OpenFlow experiment are detailed in this page:
    1412    * Authentication and Omni tools configuration
    1513    * Determine Resources Availability
     
    2018    * Release Resources
    2119
    22 Note: FOAM sites must be federated in order to trust a Clearinghouse. This is an OF administrator task that must take place before any of the user OF operations can take place.
     20Note: FOAM sites must be federated in order to trust a Clearinghouse. This is an !OpenFlow administrator task that must take place before any of the user !OpenFlow operations can take place.
    2321
    2422== Authentication and Omni tools configuration ==
     
    5452}}}
    5553
    56 A 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.
     54A complete 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.
    5755
    5856== Reserve GENI IP subnet ==
    5957
    60 In 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. To view the current list of subnets and their allocation see the [http://groups.geni.net/geni/wiki/NetworkCore/SubnetReservations GENI Network Core Subnet] page.
    61 
     58In 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. Before you start this experiment, you need to request an IP subnet from the gpo-infra@geni.net mail list along with a duration for the subnet reservation. To view the current list of subnets and their current allocation see the [http://groups.geni.net/geni/wiki/NetworkCore/SubnetReservations GENI Network Core Subnet] page.
    6259
    6360
    6461== Determine Resources Availability ==
    6562
    66 Each 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).
    67 To 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:
    68 
    69 ||'''Site'''|| '''MyPLC Aggregate URL'''           || ''' FOAM Aggregate URL '''                   ||
    70 ||    BBN   || http://myplc.gpolab.bbn.com:12346/  ||https://foam.gpolab.bbn.com:3626/foam/gapi/1
    71 || Clemson  || http://myplc.clemson.edu:12346/     ||https://foam.clemson.edu:3626/foam/gapi/1
    72 || GA Tech  || https://myplc.cip.gatech.edu:12346/ ||https://nox.orbit-lab.org:3626/foam/gapi/1
    73 ||Indiana   || https://myplc.grnoc.iu.edu:12346/   ||https://foam.noc.iu.edu:3626/foam/gapi/1
    74 || Intenet2 ||                                     ||https://foam.net.internet2.edu:3626/foam/gapi/1
    75 || NLR      ||                                     ||https://foam.nlr.net:3626/foam/gapi/1
    76 || Rutgers  ||https://plc.orbit-lab.org:12346/     ||https://foam.oflow.cip.gatech.edu:3626/foam/gapi/1   
    77 || Stanford ||https://myplc.stanford.edu:12346/    ||https://openflow4.stanford.edu:3626/foam/gapi/1
    78 ||Washington||https://of.cs.washington.edu:12346/  ||https://of.cs.washington.edu:3626/foam/gapi/1
    79 ||Wisconsin ||https://wings-openflow-1.wail.wisc.edu:12346/||https://foam.wail.wisc.edu:3626/foam/gapi/1
     63Each of the 3 sites requires an !OpenFlow RSpec and a compute resource RSpec. Also, an !OpenFlow RSpec is required for the GENI Core (NLR in this example).
     64To find out what resources are available use Omni tools to get a list of available resources from the available aggregates.  Following is a list of MyPLC and FOAM aggregates available in the meso-scale network:
     65
     66||'''Site'''|| '''MyPLC Aggregate URL'''                   || ''' FOAM Aggregate URL '''                        ||
     67||    BBN   || http://myplc.gpolab.bbn.com:12346/          ||https://foam.gpolab.bbn.com:3626/foam/gapi/1       ||
     68|| Clemson  || http://myplc.clemson.edu:12346/             ||https://foam.clemson.edu:3626/foam/gapi/1          ||
     69|| GA Tech  || https://myplc.cip.gatech.edu:12346/         ||https://nox.orbit-lab.org:3626/foam/gapi/1         ||
     70||Indiana   || https://myplc.grnoc.iu.edu:12346/           ||https://foam.noc.iu.edu:3626/foam/gapi/1           ||
     71|| Intenet2 ||                                             ||https://foam.net.internet2.edu:3626/foam/gapi/1    ||
     72|| NLR      ||                                             ||https://foam.nlr.net:3626/foam/gapi/1              ||
     73|| Rutgers  ||https://plc.orbit-lab.org:12346/             ||https://foam.oflow.cip.gatech.edu:3626/foam/gapi/1 ||   
     74|| Stanford ||https://myplc.stanford.edu:12346/            ||https://openflow4.stanford.edu:3626/foam/gapi/1    ||
     75||Washington||https://of.cs.washington.edu:12346/          ||https://of.cs.washington.edu:3626/foam/gapi/1      ||
     76||Wisconsin ||https://wings-openflow-1.wail.wisc.edu:12346/||https://foam.wail.wisc.edu:3626/foam/gapi/1        ||
    8077
    8178For complete list of available aggregates see the available [http://groups.geni.net/geni/wiki/GeniAggregate GENI Aggregates] page. 
     
    8380== Define Compute Resources RSpecs ==
    8481
    85 This experiment uses Omni V1.6.1 to set up the experiment. As a first step, the experimenter determines the available resources. Following are the omni commands issued to get the manifests for available compute resources from the BBN, Clemson and Wisconsin MyPLC aggregates:
     82This experiment uses Omni V1.6.1 to set up the experiment. As a first step, the experimenter determines the available compute resources at each site. Following are the omni commands issued to get the manifests for available compute resources from the BBN, Clemson and Wisconsin MyPLC aggregates:
    8683
    8784{{{
     
    9289}}}
    9390
    94 Each of the omni command above used the -o argument to get the listresources output to a file, all output Advertisement RSpec files are attached to this page as a reference.  The Advertisement RSpecs are used 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.
     91Each of the omni command above used the -o argument to get the listresources output to a file, all output advertisement RSpec files are attached to this page as a reference.  The advertisement RSpecs are used 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.
    9592
    9693'''BBN MyPLC Compute Resource RSpec '''
     
    154151}}}
    155152
    156 The MyPLC plnodes are pre-configured to use pre-defined addresses and MyPLC doesn't allow experimenters to change that configuration. When the experiment is running you will need to choose the appropriate interface for your experiment traffic.
     153The MyPLC plnodes are pre-configured to use pre-defined addresses and MyPLC doesn't allow experimenters to change that configuration. When the experiment is running you will need to choose the appropriate interface for your experiment traffic based on the IP subnet assigned by the GPO infrastructure group when you requested one before starting the experiment.
    157154 
    158155
     
    163160Step 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.
    164161Step 2. Review [http://groups.geni.net/geni/wiki/GeniAggregate GeniAggregate] to determine how each MyPLC host maps to the Site's OpenFlow switch.
    165  ports are
     162Determin addresses and ports.
    166163Step 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.
    167164
    168 Each of the above is covered in detail below:
     165Each of the above steps is covered in detail below:
    169166
    170167'' ''' Step 1''' ''. Collect listresources from all FOAM Aggregate:
     
    186183$ ./src/omni.py -a https://foam.nlr.net:3626/foam/gapi/1 -o listresources           # generates rspec-foam-nlr-net-3626-foam-gapi-1.xml
    187184}}}
    188 Information in these files provides the switch and the port information to be used in making the OF flowspace reservation. 
     185Information in the output manifest files provides the switch and the port information to be used in making the OF flowspace reservation. 
    189186
    190187'' ''' Step 2''' ''. Review [http://groups.geni.net/geni/wiki/GeniAggregate GeniAggregate] to determine MyPLC hosts mapping to the Site's OpenFlow switch.
     
    192189OF site diagrams to determine which ports and DPID should be used in the OF RSpec. 
    193190
    194 
     191Let map the 3 nodes from the Site's compute resources RSpec.
     192
     193== BBN OF AGGREGATE  ==
     194To define the OF RSpec for the BBN site we need to consider the compute resource used for the site which is the node navis.gpolab.bbn.com. To determine the ports and Data Path IDentifier (DPID) see the [http://groups.geni.net/geni/wiki/GeniAggregate/GpoLabOpenFlow BBN OF Aggregate] diagram and locate where the node is connected. 
     195
     196From the [http://groups.geni.net/geni/wiki/GeniAggregate/GpoLabOpenFlow BBN OF Aggregate] diagram you will find that navis.bbn.com is connected to the OF switch named ''habanero'' which has a DPID of ''06:d6:00:24:a8:c4:b9:00'' for VLAN 1750.  VLAN 1750 uses the switch ''poblano'' which has a DPID of ''06:d6:00:12:e2:b8:a5:d0'' for VLAN 1750. The VLAN 1750 is used at every meso-scale site for MyPLC resources to access the back bone OpenFLow VLANs, in our case the backbone OpenFlow VLAN is 3715. This DPID information maps to the following line in the BBN OpenFlow advertisement Rspec:
     197{{{
     198#habanero
     199  <openflow:datapath component_id="urn:publicid:IDN+openflow:foam:foam.gpolab.bbn.com+datapath+06:d6:00:24:a8:c4:b9:00" component_manager_id="urn:publicid:IDN+openflow:foam:foam.gpolab.bbn.com+authority+am" dpid="06:d6:00:24:a8:c4:b9:00">
     200#poblano
     201<openflow:datapath component_id="urn:publicid:IDN+openflow:foam:foam.gpolab.bbn.com+datapath+06:d6:00:12:e2:b8:a5:d0" component_manager_id="urn:publicid:IDN+openflow:foam:foam.gpolab.bbn.com+authority+am" dpid="06:d6:00:12:e2:b8:a5:d0">
     202}}}
     203
     204Now we have to add ports to the above definition. The host navis.bbn.com is on port 32, for the BBN habanero switch only, you must add 24 to the physical port number to determine the port to use in the rspec, which means you are looking for the OpenFlow port named ''56'' in the listresources associated to the DPID.  Also you will see that port 47 (+24=71) is used to get to poblano.  So these are the lines that define the ports on habanero:
     205{{{
     206 <openflow:datapath component_id="urn:publicid:IDN+openflow:foam:foam.gpolab.bbn.com+datapath+06:d6:00:24:a8:c4:b9:00" component_manager_id="urn:publicid:IDN+openflow:foam:foam.gpolab.bbn.com+authority+am" dpid="06:d6:00:24:a8:c4:b9:00">
     207    <openflow:port name="32" num="56"/>
     208    <openflow:port name="47" num="71"/>
     209}}}
     210Habanero Connects to port 20 on poblano where port 3 and 4 are used to map VLAN 1750 to VLAN 3715 and traffic goes out to backbone via port 1. This maps to:
     211{{{
     212 <openflow:datapath component_id="urn:publicid:IDN+openflow:foam:foam.gpolab.bbn.com+datapath+06:d6:00:12:e2:b8:a5:d0" component_manager_id="urn:publicid:IDN+openflow:foam:foam.gpolab.bbn.com+authority+am" dpid="06:d6:00:12:e2:b8:a5:d0">
     213
     214
     215
     216 * CLemson site Rspec includes node planetlab4.clemson.edu map to ports and DPID in [http://groups.geni.net/geni/wiki/GeniAggregate/ClemsonOpenFlow Clemson OF Aggregate] diagram.
     217 * Wisconsin site Rspec include node wings-openflow-2.wail.wisc.edu map to ports and DPID in [http://groups.geni.net/geni/wiki/GeniAggregate/WisconsinOpenFlow Winsconsin OF Aggregate].
    195218
    196219'' '''Step 3''' ''. Merge Step 1 and 2 to generate request RSpecs.