Changes between Version 48 and Version 49 of GENIExperimenter/ExperimentExample-stitching


Ignore:
Timestamp:
06/06/14 16:33:32 (10 years ago)
Author:
lnevers@bbn.com
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GENIExperimenter/ExperimentExample-stitching

    v48 v49  
    11= GENI Network Stitching Example =
    22
    3 This page uses gcf 2.4.1 to show an example experiment that creates a network stitching path between the GPO InstaGENI and the Utah InstaGENI racks.
     3This page uses GCF 2.6 to show an example experiment that creates a network stitching path between the GPO InstaGENI and the Utah InstaGENI racks.
    44
    55[[Image(IG-GPO-IG-Utah.jpg)]]
    66
    77
    8 The experiment uses [http://groups.geni.net/geni/wiki/GeniClearinghouse GENI Clearinghouse] credentials with the new Omni tool named ''stitcher.py''.  GENI network stitching does not require any special configuration. If you haven't already configured Omni, please follow [http://trac.gpolab.bbn.com/gcf/wiki/OmniConfigure/Automatic these configuration instructions]. For a list of other GENI sites that support stitching see the [http://groups.geni.net/geni/wiki/GeniNetworkStitchingSites GENI Network Stitching Sites] page. If you need further assistance, please contact [mailto:help@geni.net].
     8The experiment uses [http://groups.geni.net/geni/wiki/GeniClearinghouse GENI Clearinghouse] credentials with the new Omni tool named ''stitcher''.  GENI network stitching does not require any special configuration. If you haven't already configured Omni, please follow [http://trac.gpolab.bbn.com/gcf/wiki/OmniConfigure/Automatic these configuration instructions]. For a list of other GENI sites that support stitching see the [http://groups.geni.net/geni/wiki/GeniNetworkStitchingSites GENI Network Stitching Sites] page. If you need further assistance, please contact [mailto:help@geni.net].
    99
    1010== 1. Design the Stitching Experiment ==
     
    2020<?xml version="1.0" encoding="UTF-8"?>
    2121<rspec type="request"
    22         xmlns="http://www.geni.net/resources/rspec/3"
     22        xmlns="http://www.geni.net/resources/rspec/3"
    2323        xmlns:emulab="http://www.protogeni.net/resources/rspec/ext/emulab/1"
    24         xmlns:planetlab="http://www.planet-lab.org/resources/sfa/ext/planetlab/1"
    25         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    26         xsi:schemaLocation="http://www.geni.net/resources/rspec/3
    27         http://www.geni.net/resources/rspec/3/request.xsd"> 
     24        xmlns:planetlab="http://www.planet-lab.org/resources/sfa/ext/planetlab/1"
     25        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     26        xsi:schemaLocation="http://www.geni.net/resources/rspec/3
     27        http://www.geni.net/resources/rspec/3/request.xsd"> 
    2828
    2929  <node client_id="server-gpo" component_manager_id="urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm" exclusive="false">
     
    5959}}}
    6060Notes:
    61  - In the above RSpec, ''stitcher.py'' uses the link information in the ''component_manager name'' to contact the GENI Stitching Computation Service (SCS) and determine a path between the end-point hosts.
     61 - In the above RSpec, ''stitcher'' uses the link information in the ''component_manager name'' to contact the GENI Stitching Computation Service (SCS) and determine a path between the end-point hosts.
    6262 - The default bandwidth allocation is 100 MB, but for the example we set the link to 20 MB, which is sufficient to show the experiment working.
    6363
     
    7070}}}
    7171
    72 We now use ''stitcher.py'' to set up a stitched topology between the two nodes.
    73  - ''Stitcher.py'' simplifies experiment set-up because it creates slivers at all aggregates, including the network stitching path.
    74  - ''Stitcher.py'' determines all your experiment compute resource aggregates from your RSpec. (You no longer need to enter “-a aggregateName”.)
    75  - ''Stitcher.py'' uses the MAX Stitching Computation Service (SCS) to determine VLAN paths needed for your experiment.
    76  - VLANs are a scarce commodity, and failures can happen. ''Stitcher.py'' will retry if it fails to create a sliver at an aggregate.
     72We now use ''stitcher'' to set up a stitched topology between the two nodes.
     73 - ''Stitcher'' simplifies experiment set-up because it creates slivers at all aggregates, including the network stitching path.
     74 - ''Stitcher'' determines all your experiment compute resource aggregates from your RSpec. (You no longer need to enter “-a aggregateName”.)
     75 - ''Stitcher'' uses the MAX Stitching Computation Service (SCS) to determine VLAN paths needed for your experiment.
     76 - VLANs are a scarce commodity, and failures can happen. ''Stitcher'' will retry if it fails to create a sliver at an aggregate.
    7777
    7878We first create a slice for this experiment:
    7979{{{
    8080$ omni.py createslice gpo2utah
    81 10:15:41 INFO     omni: Loading agg_nick_cache file '/home/lnevers/.gcf/agg_nick_cache'
    82 10:15:41 INFO     omni: Loading config file /home/lnevers/.gcf/omni_config
    83 10:15:41 INFO     omni: Using control framework portal
    84 10:15:42 INFO     omni: Created slice with Name gpo2utah, URN urn:publicid:IDN+ch.geni.net:ln-prj+slice+gpo2utah, Expiration 2014-02-07 15:15:42
    85 10:15:42 INFO     omni:  ------------------------------------------------------------
    86 10:15:42 INFO     omni:  Completed createslice:
    87 Args: createslice gpo2utah
    88   Result Summary: Created slice with Name gpo2utah, URN urn:publicid:IDN+ch.geni.net:ln-prj+slice+gpo2utah, Expiration 2014-02-07 15:15:42
    89 10:15:42 INFO     omni:  ============================================================
    90 }}}
    91 
    92 Next, we create all necessary slivers using ''stitcher.py''. (Remember there is no need to specify the ''-a'' aggregate option.)  The ''stitcher.py'' tool records the aggregates associated with the slice in a file that it creates in the directory where you run the tool.  We type this command:
     8114:44:56 INFO    : Loading agg_nick_cache file '/home/lnevers/.gcf/agg_nick_cache'
     8214:44:56 INFO    : Loading config file /home/lnevers/.gcf/omni_config
     8314:44:56 INFO    : Using control framework portal
     8414:44:56 INFO    : Member Authority is https://ch.geni.net/MA (from config)
     8514:44:56 INFO    : Slice Authority is https://ch.geni.net/SA (from config)
     8614:45:00 INFO    : Created slice with Name gpo2utah, URN urn:publicid:IDN+ch.geni.net:Luisa_Nevers-Test-Proj_01+slice+gpo2utah, Expiration 2014-06-13 18:45:00+00:00
     8714:45:00 INFO    :  ------------------------------------------------------
     8814:45:00 INFO    :  Completed createslice:
     89  Options as run:
     90                framework: portal
     91                project: Luisa_Nevers-Test-Proj_01
     92
     93  Args: createslice gpo2utah
     94  Result Summary: Created slice with Name gpo2utah, URN urn:publicid:IDN+ch.geni.net:Luisa_Nevers-Test-Proj_01+slice+gpo2utah, Expiration 2014-06-13 18:45:00+00:00
     9514:45:00 INFO    :  ======================================================
     96}}}
     97
     98Next, we create all necessary slivers using ''stitcher'' which will use the RSpec to determine which aggregates are used, so there is no need to specify the ''-a'' aggregate option. Also the ''stitcher'' records the aggregates associated with the slice in a file in the ''~/.gcf'' directory, for later operations with the slice.  To create slivers at all aggregates, we type this command:
    9399
    94100{{{
    95101$ stitcher.py createsliver gpo2utah stitch-demo.rspec -o
    96 10:44:01 INFO     stitcher: Loading agg_nick_cache file '/home/lnevers/.gcf/agg_nick_cache'
    97 10:44:01 INFO     stitcher: Loading config file /home/lnevers/.gcf/omni_config
    98 10:44:01 INFO     stitcher: Using control framework portal
    99 10:44:01 INFO     stitcher: Checking that slice gpo2utah is valid...          <==(1)
    100 10:44:02 INFO     stitcher: Slice urn:publicid:IDN+ch.geni.net:ln-prj+slice+gpo2utah expires on 2014-02-07 15:15:42 UTC 
    101 10:44:03 INFO     stitcher: <Aggregate urn:publicid:IDN+utah.geniracks.net+authority+cm> speaks AM API v3, but sticking with v2
    102 10:44:04 INFO     stitcher: <Aggregate urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm> speaks AM API v3, but sticking with v2
    103 10:44:04 INFO     stitcher: <Aggregate urn:publicid:IDN+emulab.net+authority+cm> speaks AM API v3, but sticking with v2
    104 10:44:04 INFO     stitcher: Stitched reservation will include resources from these aggregates:   <==(2)
    105 10:44:04 INFO     stitcher:     <Aggregate urn:publicid:IDN+utah.geniracks.net+authority+cm>
    106 10:44:04 INFO     stitcher:     <Aggregate urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm>
    107 10:44:04 INFO     stitcher:     <Aggregate urn:publicid:IDN+emulab.net+authority+cm>
    108 10:44:04 INFO     stitcher:     <Aggregate urn:publicid:IDN+ion.internet2.edu+authority+am>
    109 10:44:04 INFO     stitch.Aggregate: Writing to '/tmp/gpo2utah-createsliver-request-11-instageni-gpolab-bbn-com.xml'  <==(3)
    110 10:44:04 INFO     stitch.Aggregate:
    111         Stitcher doing createsliver at https://boss.instageni.gpolab.bbn.com:12369/protogeni/xmlrpc/am
    112 10:44:20 ERROR    omni:  {'output': "vlan tag 3746 for 'link' not available", 'code': {'protogeni_error_log': 'urn:publicid:IDN+instageni.gpolab.bbn.com+log+92bb751082de32382c54b5f3e5159872', 'am_type': 'protogeni', 'geni_code': 1, 'am_code': 1, 'protogeni_error_url': 'https://boss.instageni.gpolab.bbn.com/spewlogfile.php3?logfile=92bb751082de32382c54b5f3e5159872'}, 'value': 0}
    113 10:44:20 INFO     stitch.Aggregate: Got AMAPIError doing createsliver gpo2utah at <Aggregate urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm>: AMAPIError: Error from Aggregate: code 1.
    114 protogeni AM code: 1: vlan tag 3746 for 'link' not available.                           <==(4)
    115 10:44:20 INFO     stitch.launcher: Will put <Aggregate urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm> back in the pool to allocate. Got Retry <Aggregate urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm> 2th time with <Hop u'urn:publicid:IDN+instageni.gpolab.bbn.com+interface+procurve2:5.24.ion.newy.ae0' on path u'link'> new suggested 3711 (not 3746)
    116 10:44:20 INFO     stitch.launcher: Pausing for 30 seconds for Aggregates to free up resources...
    117 
    118 
    119 10:44:50 INFO     stitch.Aggregate: Writing to '/tmp/gpo2utah-createsliver-request-11-emulab-net.xml'
    120 10:44:50 INFO     stitch.Aggregate:
    121         Stitcher doing createsliver at https://www.emulab.net:12369/protogeni/xmlrpc/am   <==(5)
    122 10:45:27 INFO     stitch.Aggregate: Allocation at <Aggregate urn:publicid:IDN+emulab.net+authority+cm> complete.
    123 10:45:27 INFO     stitch.Aggregate: Writing to '/tmp/gpo2utah-createsliver-request-11-utah-geniracks-net.xml'
    124 10:45:27 INFO     stitch.Aggregate:
    125         Stitcher doing createsliver at https://boss.utah.geniracks.net:12369/protogeni/xmlrpc/am  <==(5)
    126 10:45:54 INFO     stitch.Aggregate: Allocation at <Aggregate urn:publicid:IDN+utah.geniracks.net+authority+cm> complete.
    127 10:45:54 INFO     stitch.Aggregate: Writing to '/tmp/gpo2utah-createsliver-request-12-instageni-gpolab-bbn-com.xml'
    128 10:45:54 INFO     stitch.Aggregate:
    129         Stitcher doing createsliver at https://boss.instageni.gpolab.bbn.com:12369/protogeni/xmlrpc/am <==(5)
    130 10:46:16 INFO     stitch.Aggregate: Allocation at <Aggregate urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm> complete.
    131 10:46:16 INFO     stitch.Aggregate: Writing to '/tmp/gpo2utah-createsliver-request-11-ion-internet2-edu.xml'
    132 10:46:16 INFO     stitch.Aggregate:
    133         Stitcher doing createsliver at http://geni-am.net.internet2.edu:12346         <==(5)
    134 10:47:00 INFO     stitch.Aggregate: DCN AM <Aggregate urn:publicid:IDN+ion.internet2.edu+authority+am>: must wait for status ready....
    135 10:47:00 INFO     stitch.Aggregate: Pause 30 seconds to let circuit become ready...  <==(6)
    136 10:47:36 INFO     stitch.Aggregate: DCN circuit 62281 is ready
    137 10:47:43 INFO     stitch.Aggregate: Allocation at <Aggregate urn:publicid:IDN+ion.internet2.edu+authority+am> complete.
    138 10:47:43 INFO     stitch.launcher: All aggregates are complete.
    139 10:47:43 INFO     stitcher: Writing to 'gpo2utah-manifest-rspec-stitching-combined.xml'
    140 10:47:43 INFO     stitcher: Saved combined reservation RSpec at 4 AMs to
    141 file gpo2utah-manifest-rspec-stitching-combined.xml        <==(7)
    142 Stitching success: Reserved resources in slice gpo2utah at 4 Aggregates
    143 (including 2 intermediate aggregate(s) not in the original request), creating 1 link(s).
    144 
    145 }}}
    146 
    147  (1) ''Sticher.py'' gets the experimenter's slice credentials to make sure the named slice if valid.  It also runs rspeclint on the ''stitch-ig-gpo-ig-utah.rspec '' file, if rspeclint is found in your search path. [[BR]]
    148  (2) ''Sticher.py'' contacts the Stitching Computation Service (SCS) and returns the list of AMs that are needed to establish the stitching path, including the Internet2/ION aggregate.[[BR]]
    149  (3) ''Stitcher.py'' generates a request RSpec for each of the aggregates in the path to request both network and compute resources. [[BR]]
    150  (4) ''Stitcher.py'' find that requested VLAN is not available and backs off before trying next VLAN.
    151  (5) ''Stitcher.py'' creates slivers at each aggregate (path & end-points) [[BR]]
    152  (6) The request to Internet2/ION waits for DCN circuits to be created. If this request fails, ''stitcher.py'' will try again after 600 seconds. [[BR]]
    153  (7) A combined manifest Rspec is assembled by using the ''-o'' option with the ''stitcher.py'' command.  The combined manifest RSpec shows all aggregates and VLANs used in the slice.
     10214:45:06 INFO    : Configured logging from file /home/lnevers/gcf-2.6-rc6/src/gcf/stitcher_logging.conf
     10314:45:07 INFO    : Reading slice gpo2utah credential...   <=(1)
     10414:45:07 INFO    : Slice urn:publicid:IDN+ch.geni.net:Luisa_Nevers-Test-Proj_01+slice+gpo2utah expires on 2014-06-13 18:45:00 UTC
     10514:45:07 INFO    : Calling SCS...                         <=(2)
     10614:45:08 INFO    : Multi-AM reservation will include resources from these aggregates:
     10714:45:08 INFO    :      <Aggregate utah-ig>               <=(2)
     10814:45:08 INFO    :      <Aggregate gpo-ig>
     10914:45:08 INFO    :      <Aggregate utah-pg>
     11014:45:08 INFO    :      <Aggregate ion>
     11114:45:08 INFO    : Stitcher doing createsliver at <Aggregate gpo-ig>...   <=(3)
     11214:45:25 INFO    : ... Allocation at <Aggregate gpo-ig> complete.
     11314:45:25 INFO    : Stitcher doing createsliver at <Aggregate utah-pg>...
     11414:46:13 INFO    : ... Allocation at <Aggregate utah-pg> complete.
     11514:46:13 INFO    : Stitcher doing createsliver at <Aggregate utah-ig>...
     11614:46:35 INFO    : ... Allocation at <Aggregate utah-ig> complete.
     11714:46:35 INFO    : Stitcher doing createsliver at <Aggregate ion>...
     11814:47:19 INFO    : DCN AM <Aggregate ion>: must wait for status ready....
     11914:47:19 INFO    : Pausing 30 seconds to let circuit become ready...
     12014:48:04 INFO    : Getting credential from file /tmp/slice-ch-geni-net-Luisa_Nevers-Test-Proj_01-gpo2utah-for-lnevers-cred.xml
     12114:48:04 INFO    : ... Allocation at <Aggregate ion> complete.
     12214:48:04 INFO    : All aggregates are complete.
     12314:48:04 INFO    : Your resources expire at 3 different times at different AMs. The first expiration is 2014-06-06 23:46:15 UTC at <Aggregate utah-ig> and <Aggregate utah-pg>. Second expiration is 2014-06-07T18:46:39 UTC.
     12414:48:04 INFO    : Saved combined reservation RSpec at 4 AMs to file
     125                 '/home/lnevers/gcf-test/stitch-test/gpo2utah-manifest-rspec-stitching-combined.xml' <=(4)
     126Success: Reserved resources in slice gpo2utah at 4 Aggregates (including 2 intermediate aggregate(s) not in the original request), creating 1 stitched link(s).
     127}}}
     128
     129 (1) Slice credentials are checked and rspeclint is run on the ''stitch-demo-utah.rspec '' request RSpec, if rspeclint is found in your search path. [[BR]]
     130 (2) ''Stitcher'' contacts the Stitching Computation Service (SCS) which returns the list of AMs needed to establish the stitching path, including the Internet2 ION aggregate.[[BR]]
     131 (3) ''Stitcher'' generates a request RSpec for each aggregates and creates a sliver at each aggregate(path & end-points). [[BR]]
     132 (4) A combined manifest RSpec is assembled that shows all aggregates and VLANs used in the slice.
    154133
    155134The above stitched scenario sliver creation accomplishes several steps that previously required manual set-up:
     
    166145[[Image(IG-GPO-IG-Utah-tags.jpg)]]
    167146
    168 Below is part of the ig-gpo-ig-utah-manifest-rspec-stitching-combined.xml file showing the stitching manifest that includes all hops along the stitched VLAN path:
    169 
    170 {{{
    171 <stitching lastUpdateTime="2014-01-31T15:47:30.314Z"
    172 xmlns="http://hpn.east.isi.edu/rspec/ext/stitch/0.1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    173 xsi:schemaLocation="http://hpn.east.isi.edu/rspec/ext/stitch/0.1/ http://hpn.east.isi.edu/rspec/ext/stitch/0.1/stitch-schema.xsd">
     147Below is part of the gpo2utah-manifest-rspec-stitching-combined.xml file showing the stitching manifest that includes all hops along the stitched VLAN path:
     148
     149{{{
     150<stitching lastUpdateTime="20140606:11:45:07" xmlns="http://hpn.east.isi.edu/rspec/ext/stitch/0.1/">
    174151<path id="link">
    175         <globalId> ion.internet2.edu-62281 </globalId>
    176         <lifetime id="ion.internet2.edu-62281">
    177                 <start type="xgc"> 2014-02-01T15:46:20.000Z </start>
    178                 <end type="xgc"> 2014-01-31T15:47:30.314Z </end>
    179         </lifetime>
    180         <hop id="1">
    181                 <link id="urn:publicid:IDN+instageni.gpolab.bbn.com+interface+procurve2:5.24.ion.newy.ae0">
    182                         <trafficEngineeringMetric> 10 </trafficEngineeringMetric>
    183                         <capacity> 20000 </capacity>
    184                         <switchingCapabilityDescriptor>
    185                                 <switchingcapType> l2sc </switchingcapType>
    186                                 <encodingType> ethernet </encodingType>
    187                                 <switchingCapabilitySpecificInfo>
    188                                         <switchingCapabilitySpecificInfo_L2sc>
    189                                                 <interfaceMTU> 9000 </interfaceMTU>
    190                                                 <vlanRangeAvailability> 3711 </vlanRangeAvailability>
    191                                                 <suggestedVLANRange> 3711 </suggestedVLANRange>
    192                                                 <vlanTranslation> false </vlanTranslation>
    193                                         </switchingCapabilitySpecificInfo_L2sc>
    194                                 </switchingCapabilitySpecificInfo>
    195                         </switchingCapabilityDescriptor>
    196                 </link>
    197                 <nextHop> 2 </nextHop>
    198         </hop>
    199         <hop id="2">
    200                 <link id="urn:publicid:IDN+ion.internet2.edu+interface+rtr.newy:ae0:bbn">
    201                         <trafficEngineeringMetric> 10 </trafficEngineeringMetric>
    202                         <capacity> 20000.0 </capacity>
    203                         <switchingCapabilityDescriptor>
    204                                 <switchingcapType> l2sc </switchingcapType>
    205                                 <encodingType> ethernet </encodingType>
    206                                 <switchingCapabilitySpecificInfo>
    207                                         <switchingCapabilitySpecificInfo_L2sc>
    208                                                 <interfaceMTU> 9000 </interfaceMTU>
    209                                                 <vlanRangeAvailability> 3711 </vlanRangeAvailability>
    210                                                 <suggestedVLANRange> 3711 </suggestedVLANRange>
    211                                                 <vlanTranslation> true </vlanTranslation>
    212                                         </switchingCapabilitySpecificInfo_L2sc>
    213                                 </switchingCapabilitySpecificInfo>
    214                         </switchingCapabilityDescriptor>
    215                 </link>
    216                 <nextHop> 3 </nextHop>
    217         </hop>
    218         <hop id="3">
    219                 <link id="urn:publicid:IDN+ion.internet2.edu+interface+rtr.atla:ge-10/3/2:protogeni">
    220                         <trafficEngineeringMetric> 10 </trafficEngineeringMetric>
    221                         <capacity> 20000.0 </capacity>
    222                         <switchingCapabilityDescriptor>
    223                                 <switchingcapType> l2sc </switchingcapType>
    224                                 <encodingType> ethernet </encodingType>
    225                                 <switchingCapabilitySpecificInfo>
    226                                         <switchingCapabilitySpecificInfo_L2sc>
    227                                                 <interfaceMTU> 9000 </interfaceMTU>
    228                                                 <vlanRangeAvailability> 978 </vlanRangeAvailability>
    229                                                 <suggestedVLANRange> 978 </suggestedVLANRange>
    230                                                 <vlanTranslation> true </vlanTranslation>
    231                                         </switchingCapabilitySpecificInfo_L2sc>
    232                                 </switchingCapabilitySpecificInfo>
    233                         </switchingCapabilityDescriptor>
    234                 </link>
    235                 <nextHop> 4 </nextHop>
    236         </hop>
    237         <hop id="4">
    238                 <link id="urn:publicid:IDN+emulab.net+interface+procurve-pgeni-atla:3.21">
    239                         <trafficEngineeringMetric> 10 </trafficEngineeringMetric>
    240                         <capacity> 20000 </capacity>
    241                         <switchingCapabilityDescriptor>
    242                                 <switchingcapType> l2sc </switchingcapType>
    243                                 <encodingType> ethernet </encodingType>
    244                                 <switchingCapabilitySpecificInfo>
    245                                         <switchingCapabilitySpecificInfo_L2sc>
    246                                                 <interfaceMTU> 9000 </interfaceMTU>
    247                                                 <vlanRangeAvailability> 978 </vlanRangeAvailability>
    248                                                 <suggestedVLANRange> 978 </suggestedVLANRange>
    249                                                 <vlanTranslation> false </vlanTranslation>
    250                                         </switchingCapabilitySpecificInfo_L2sc>
    251                                 </switchingCapabilitySpecificInfo>
    252                         </switchingCapabilityDescriptor>
    253                 </link>
    254                 <nextHop> 5 </nextHop>
    255         </hop>
    256         <hop id="5">
    257                 <link id="urn:publicid:IDN+emulab.net+interface+procurveA:3.19">
    258                         <trafficEngineeringMetric> 10 </trafficEngineeringMetric>
    259                         <capacity> 20000 </capacity>
    260                         <switchingCapabilityDescriptor>
    261                                 <switchingcapType> l2sc </switchingcapType>
    262                                 <encodingType> ethernet </encodingType>
    263                                 <switchingCapabilitySpecificInfo>
    264                                         <switchingCapabilitySpecificInfo_L2sc>
    265                                                 <interfaceMTU> 9000 </interfaceMTU>
    266                                                 <vlanRangeAvailability> 978 </vlanRangeAvailability>
    267                                                 <suggestedVLANRange> 978 </suggestedVLANRange>
    268                                                 <vlanTranslation> false </vlanTranslation>
    269                                         </switchingCapabilitySpecificInfo_L2sc>
    270                                 </switchingCapabilitySpecificInfo>
    271                         </switchingCapabilityDescriptor>
    272                 </link>
    273                 <nextHop> 6 </nextHop>
    274         </hop>
    275         <hop id="6">
    276                 <link id="urn:publicid:IDN+utah.geniracks.net+interface+procurve2:1.19">
    277                         <trafficEngineeringMetric> 10 </trafficEngineeringMetric>
    278                         <capacity> 20000 </capacity>
    279                         <switchingCapabilityDescriptor>
    280                                 <switchingcapType> l2sc </switchingcapType>
    281                                 <encodingType> ethernet </encodingType>
    282                                 <switchingCapabilitySpecificInfo>
    283                                         <switchingCapabilitySpecificInfo_L2sc>
    284                                                 <interfaceMTU> 9000 </interfaceMTU>
    285                                                 <vlanRangeAvailability> 978 </vlanRangeAvailability>
    286                                                 <suggestedVLANRange> 978 </suggestedVLANRange>
    287                                                 <vlanTranslation> false </vlanTranslation>
    288                                         </switchingCapabilitySpecificInfo_L2sc>
    289                                 </switchingCapabilitySpecificInfo>
    290                         </switchingCapabilityDescriptor>
    291                 </link>
    292                 <nextHop> null </nextHop>
    293         </hop>
     152<hop id="1">
     153<link id="urn:publicid:IDN+instageni.gpolab.bbn.com+interface+procurve2:5.24.ion.newy.ae0">
     154<trafficEngineeringMetric> 10  </trafficEngineeringMetric>
     155<capacity> 20000  </capacity>
     156<switchingCapabilityDescriptor>
     157<switchingcapType> l2sc</switchingcapType>
     158<encodingType> ethernet</encodingType>
     159<switchingCapabilitySpecificInfo>
     160<switchingCapabilitySpecificInfo_L2sc>
     161<interfaceMTU> 1500</interfaceMTU>
     162<vlanRangeAvailability> 3727</vlanRangeAvailability>
     163<suggestedVLANRange> 3727</suggestedVLANRange>
     164<vlanTranslation> false</vlanTranslation>
     165</switchingCapabilitySpecificInfo_L2sc>
     166</switchingCapabilitySpecificInfo>
     167</switchingCapabilityDescriptor>
     168</link>
     169<nextHop> 2  </nextHop>
     170</hop>
     171<hop id="2">
     172<link id="urn:publicid:IDN+ion.internet2.edu+interface+rtr.newy:ae0:bbn">
     173<trafficEngineeringMetric> 10 </trafficEngineeringMetric>
     174<capacity> 20000.0 </capacity>
     175<switchingCapabilityDescriptor>
     176<switchingcapType> l2sc </switchingcapType>
     177<encodingType> ethernet </encodingType>
     178<switchingCapabilitySpecificInfo>
     179<switchingCapabilitySpecificInfo_L2sc>
     180<interfaceMTU> 9000 </interfaceMTU>
     181<vlanRangeAvailability> 3727 </vlanRangeAvailability>
     182<suggestedVLANRange> 3727 </suggestedVLANRange>
     183<vlanTranslation> true </vlanTranslation>
     184</switchingCapabilitySpecificInfo_L2sc>
     185</switchingCapabilitySpecificInfo>
     186</switchingCapabilityDescriptor>
     187</link>
     188<nextHop> 3 </nextHop>
     189</hop>
     190<hop id="3">
     191<link id="urn:publicid:IDN+ion.internet2.edu+interface+rtr.atla:ge-10/3/2:protogeni">
     192<trafficEngineeringMetric> 10 </trafficEngineeringMetric>
     193<capacity> 20000.0 </capacity>
     194<switchingCapabilityDescriptor>
     195<switchingcapType> l2sc </switchingcapType>
     196<encodingType> ethernet </encodingType>
     197<switchingCapabilitySpecificInfo>
     198<switchingCapabilitySpecificInfo_L2sc>
     199<interfaceMTU> 9000 </interfaceMTU>
     200<vlanRangeAvailability> 805 </vlanRangeAvailability>
     201<suggestedVLANRange> 805 </suggestedVLANRange>
     202<vlanTranslation> true </vlanTranslation>
     203</switchingCapabilitySpecificInfo_L2sc>
     204</switchingCapabilitySpecificInfo>
     205</switchingCapabilityDescriptor>
     206</link>
     207<nextHop> 4 </nextHop>
     208</hop>
     209<hop id="4">
     210<link id="urn:publicid:IDN+emulab.net+interface+procurve-pgeni-atla:3.21">
     211<trafficEngineeringMetric> 10  </trafficEngineeringMetric>
     212<capacity> 20000  </capacity>
     213<switchingCapabilityDescriptor>
     214<switchingcapType> l2sc</switchingcapType>
     215<encodingType> ethernet</encodingType>
     216<switchingCapabilitySpecificInfo>
     217<switchingCapabilitySpecificInfo_L2sc>
     218<interfaceMTU> 1500</interfaceMTU>
     219<vlanRangeAvailability> 805</vlanRangeAvailability>
     220<suggestedVLANRange> 805</suggestedVLANRange>
     221<vlanTranslation> false</vlanTranslation>
     222</switchingCapabilitySpecificInfo_L2sc>
     223</switchingCapabilitySpecificInfo>
     224</switchingCapabilityDescriptor>
     225</link>
     226<nextHop> 5</nextHop>
     227</hop>
     228<hop id="5">
     229<link id="urn:publicid:IDN+emulab.net+interface+procurveA:3.19">
     230<trafficEngineeringMetric> 10  </trafficEngineeringMetric>
     231<capacity> 20000  </capacity>
     232<switchingCapabilityDescriptor>
     233<switchingcapType> l2sc</switchingcapType>
     234<encodingType> ethernet</encodingType>
     235<switchingCapabilitySpecificInfo>
     236<switchingCapabilitySpecificInfo_L2sc>
     237<interfaceMTU> 1500</interfaceMTU>
     238<vlanRangeAvailability> 805</vlanRangeAvailability>
     239<suggestedVLANRange> 805</suggestedVLANRange>
     240<vlanTranslation> false</vlanTranslation>
     241</switchingCapabilitySpecificInfo_L2sc>
     242</switchingCapabilitySpecificInfo>
     243</switchingCapabilityDescriptor>
     244</link>
     245<nextHop> 6</nextHop>
     246</hop>
     247<hop id="6">
     248<link id="urn:publicid:IDN+utah.geniracks.net+interface+procurve2:1.19">
     249<trafficEngineeringMetric> 10  </trafficEngineeringMetric>
     250<capacity> 20000  </capacity>
     251<switchingCapabilityDescriptor>
     252<switchingcapType> l2sc</switchingcapType>
     253<encodingType> ethernet</encodingType>
     254<switchingCapabilitySpecificInfo>
     255<switchingCapabilitySpecificInfo_L2sc>
     256<interfaceMTU> 1500</interfaceMTU>
     257<vlanRangeAvailability> 805</vlanRangeAvailability>
     258<suggestedVLANRange> 805</suggestedVLANRange>
     259<vlanTranslation> false</vlanTranslation>
     260</switchingCapabilitySpecificInfo_L2sc>
     261</switchingCapabilitySpecificInfo>
     262</switchingCapabilityDescriptor>
     263</link>
     264<nextHop> null</nextHop>
     265</hop>
    294266</path>
    295267</stitching>
     
    298270In the stitching definition:
    299271
    300   - <hop id="1"> is for the GPO InstaGENI switch (procurve2:5.24.ion.newy.ae0) and uses VLAN 3711.
    301   - <hop id="2"> is for the Internet2 router in New York (rtr.newy:ae0:bbn) and uses VLAN 3711.
    302   - <hop id="3"> is for the Internet2 router in Atlanta (rtr.atla:ge-10/3/2:protogeni) and uses VLAN 978
    303   - <hop id="4"> is for PG Utah switch that connects PG Utah to ION  (procurve-pgeni-atla:3.21) and uses VLAN 978
    304   - <hop id="5"> is for the Utah PG switch that connects to Utah IG (procurveA:3.19) and uses VLAN 978
    305   - <hop id="6"> is for the Utah InstaGENI switch (procurve2:1.19) and uses VLAN 978
     272  - <hop id="1"> is for the GPO InstaGENI switch (procurve2:5.24.ion.newy.ae0) and uses VLAN 3727.
     273  - <hop id="2"> is for the Internet2 router in New York (rtr.newy:ae0:bbn) and uses VLAN 3727.
     274  - <hop id="3"> is for the Internet2 router in Atlanta (rtr.atla:ge-10/3/2:protogeni) and uses VLAN 805
     275  - <hop id="4"> is for PG Utah switch that connects PG Utah to ION  (procurve-pgeni-atla:3.21) and uses VLAN 805
     276  - <hop id="5"> is for the Utah PG switch that connects to Utah IG (procurveA:3.19) and uses VLAN 805
     277  - <hop id="6"> is for the Utah InstaGENI switch (procurve2:1.19) and uses VLAN 805
    306278
    307279Also notice that each of the hops show the bandwidth that was originally requested:
     
    315287$ readyToLogin.py gpo2utah -a ig-gpo
    316288...
     289================================================================================
     290LOGIN INFO for AM: https://boss.instageni.gpolab.bbn.com:12369/protogeni/xmlrpc/am/2.0
     291================================================================================
     292
     293For more login info, see the section entitled:
     294         'Providing a private key to ssh' in 'readyToLogin.py -h'
     295
    317296server-gpo's geni_status is: ready (am_status:ready)
    318297User lnevers logs in to server-gpo using:
    319         ssh -i /home/lnevers/.ssh/geni_cert_portal_key lnevers@pcvm1-22.instageni.gpolab.bbn.com
     298        ssh -i /home/lnevers/.ssh/geni_cert_portal_key lnevers@pcvm1-26.instageni.gpolab.bbn.com
     299
     300
    320301
    321302$ readyToLogin.py gpo2utah -a ig-utah
    322 ...client-utah's geni_status is: ready (am_status:ready)
     303...
     304
     305================================================================================
     306LOGIN INFO for AM: https://boss.utah.geniracks.net:12369/protogeni/xmlrpc/am/2.0
     307================================================================================
     308
     309For more login info, see the section entitled:
     310         'Providing a private key to ssh' in 'readyToLogin.py -h'
     311
     312client-utah's geni_status is: ready (am_status:ready)
    323313User lnevers logs in to client-utah using:
    324         ssh -p 32826  -i /home/lnevers/.ssh/geni_cert_portal_key lnevers@pc1.utah.geniracks.net
     314        ssh -p 30522  -i /home/lnevers/.ssh/geni_cert_portal_key lnevers@pc1.utah.geniracks.net
    325315}}}
    326316
    327317We will use the ''server-gpo'' login to determine the routable IP address that was requested for the Web Server:
    328318{{{
    329 $ ssh -i /home/lnevers/.ssh/geni_cert_portal_key lnevers@pcvm1-22.instageni.gpolab.bbn.com
    330 [lnevers@server-gpo ~]$ /sbin/ifconfig
    331 [lnevers@server-gpo ~]$ /sbin/ifconfig
    332 eth999    Link encap:Ethernet  HWaddr 02:25:22:6C:A3:DC 
    333           inet addr:192.1.242.161  Bcast:192.1.242.255  Mask:255.255.255.128  <==(a)
     319$ ssh -i /home/lnevers/.ssh/geni_cert_portal_key lnevers@pcvm1-26.instageni.gpolab.bbn.com
     320[lnevers@server-gpo ~]$  /sbin/ifconfig
     321eth999    Link encap:Ethernet  HWaddr 02:84:C8:6D:99:DA 
     322          inet addr:192.1.242.172  Bcast:192.1.242.255  Mask:255.255.255.128  <=(a)
    334323          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
    335           RX packets:17625 errors:0 dropped:0 overruns:0 frame:0
    336           TX packets:9442 errors:0 dropped:0 overruns:0 carrier:0
     324          RX packets:24503 errors:0 dropped:0 overruns:0 frame:0
     325          TX packets:10400 errors:0 dropped:0 overruns:0 carrier:0
    337326          collisions:0 txqueuelen:0
    338           RX bytes:25433110 (24.2 MiB)  TX bytes:530615 (518.1 KiB)
    339 
    340 eth3711   Link encap:Ethernet  HWaddr 02:0C:AA:C1:1A:1F 
     327          RX bytes:25757338 (24.5 MiB)  TX bytes:557996 (544.9 KiB)
     328
     329eth3727   Link encap:Ethernet  HWaddr 02:09:15:E4:32:ED 
    341330          inet addr:192.168.4.1  Bcast:192.168.4.255  Mask:255.255.255.0
    342331          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
    343           RX packets:13 errors:0 dropped:0 overruns:0 frame:0
    344           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
     332          RX packets:19288 errors:0 dropped:0 overruns:0 frame:0
     333          TX packets:13587 errors:0 dropped:0 overruns:0 carrier:0
    345334          collisions:0 txqueuelen:0
    346           RX bytes:576 (576.0 b)  TX bytes:0 (0.0 b)
    347 
     335          RX bytes:27216849 (25.9 MiB)  TX bytes:1598817 (1.5 MiB)
    348336}}}
    349337 (a) publically routable IP address is 192.1.242.161
     
    414402Now that the experiment is completed, we release all resources:
    415403{{{
    416 $ stitcher.py deletesliver gpo2utah
     404$ stitcher deletesliver gpo2utah
    41740511:28:11 INFO     stitcher: Loading agg_nick_cache file '/home/lnevers/.gcf/agg_nick_cache'
    41840611:28:11 INFO     stitcher: Loading config file /home/lnevers/.gcf/omni_config
     
    437425}}}
    438426
    439 Stitcher.py uses the files '' ch\.geni\.net.ln-prj.gpo2utah-amlist.txt'' which has the AM list associated with the slice. Note, that is this file does not exist in the current working directory, stitcher.py will try to delete the sliver at all know aggregates, but you will still have to delete the sliver manually at the Internet2/ION aggregate (http://geni-am.net.internet2.edu:12346).   Now the sliver has been deleted and compute and network resources are released at all aggregates.
     427Stitcher uses the files '' ch\.geni\.net.ln-prj.gpo2utah-amlist.txt'' which has the AM list associated with the slice. Note, that is this file does not exist in the current working directory, stitcher will try to delete the sliver at all know aggregates, but you will still have to delete the sliver manually at the Internet2/ION aggregate (http://geni-am.net.internet2.edu:12346).   Now the sliver has been deleted and compute and network resources are released at all aggregates.
    440428
    441429== Additional Stitching Scenarios ==
     
    444432
    445433If additional help is needed please contact [mailto:help@geni.net].
    446