Changes between Version 45 and Version 46 of GENIExperimenter/ExperimentExample-stitching


Ignore:
Timestamp:
01/31/14 12:29:03 (6 years ago)
Author:
lnevers@bbn.com
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GENIExperimenter/ExperimentExample-stitching

    v45 v46  
    11= GENI Network Stitching Example =
    22
    3 This page uses gcf 2.4 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.4.1 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)]]
     
    1313<img src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/Graphics/design.png?format=raw" alt="Design/Setup"></a>
    1414}}}
    15 At this time, GENI network stitching is supported by several aggregates. This example shows a simple stitching scenario with one server VM in the GPO InstaGENI rack and one client VM in the Utah InstaGENI rack.  The server-gpo host is configured as a Web, Iperf and !PingPlus server; it also has a routable IP address that is used to access the web server and display results for all traffic types.
     15GENI network stitching is at the aggregates listed in the  [http://groups.geni.net/geni/wiki/GeniNetworkStitchingSites GENI Network Stitching Sites] page. This example shows a simple stitching scenario with one server VM in the GPO InstaGENI rack and one client VM in the Utah InstaGENI rack.  The server-gpo host is configured as a Web, Iperf and !PingPlus server; it also has a routable IP address that is used to access the web server and display results for all traffic types.
    1616
    1717We define an RSpec with 2 nodes and one link between them. The link ''' ''must'' ''' specify the 2 aggregates that are the
     
    2121<rspec type="request"
    2222        xmlns="http://www.geni.net/resources/rspec/3"
     23        xmlns:emulab="http://www.protogeni.net/resources/rspec/ext/emulab/1"
    2324        xmlns:planetlab="http://www.planet-lab.org/resources/sfa/ext/planetlab/1"
    2425        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    25        xmlns:stitch="http://hpn.east.isi.edu/rspec/ext/stitch/0.1/"
    2626        xsi:schemaLocation="http://www.geni.net/resources/rspec/3
    2727        http://www.geni.net/resources/rspec/3/request.xsd"> 
     28
    2829  <node client_id="server-gpo" component_manager_id="urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm" exclusive="false">
    2930    <sliver_type name="emulab-openvz"/>
     
    5253    <interface_ref client_id="server-gpo:if0"/>
    5354    <interface_ref client_id="client-utah:if0"/>
    54     <property source_id="server-gpo:if0" dest_id="client-utah:if0" capacity="100000"/>
    55     <property source_id="client-utah:if0" dest_id="server-gpo:if0" capacity="100000"/>
     55    <property source_id="server-gpo:if0" dest_id="client-utah:if0" capacity="20000"/>
     56    <property source_id="client-utah:if0" dest_id="server-gpo:if0" capacity="20000"/>
    5657  </link>
    5758</rspec>
    5859}}}
    59 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.
     60Notes:
     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.
     62 - 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.
     63
    6064
    6165
     
    7579{{{
    7680$ omni.py createslice gpo2utah
    77 13:23:22 INFO     omni: Loading config file /home/lnevers/.gcf/omni_config
    78 13:23:22 INFO     omni: Using control framework portal
    79 13:23:23 INFO     omni: Created slice with Name gpo2utah, URN urn:publicid:IDN+ch.geni.net:ln-prj+slice+gpo2utah, Expiration 2013-07-25 14:41:19
    80 13:23:23 INFO     omni:  ------------------------------------------------------------
    81 13:23:23 INFO     omni:  Completed createslice:
    82 
    83   Options as run:
    84                 framework: portal
    85                 project: ln-prj
    86 
    87   Args: createslice gpo2utah
    88 
    89   Result Summary: Created slice with Name gpo2utah, URN urn:publicid:IDN+ch.geni.net:ln-prj+slice+gpo2utah, Expiration 2013-07-25 14:41:19
    90  
    91 13:23:23 INFO     omni:  ============================================================
     8110:15:41 INFO     omni: Loading agg_nick_cache file '/home/lnevers/.gcf/agg_nick_cache'
     8210:15:41 INFO     omni: Loading config file /home/lnevers/.gcf/omni_config
     8310:15:41 INFO     omni: Using control framework portal
     8410: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
     8510:15:42 INFO     omni:  ------------------------------------------------------------
     8610:15:42 INFO     omni:  Completed createslice:
     87Args: 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
     8910:15:42 INFO     omni:  ============================================================
    9290}}}
    9391
     
    9593
    9694{{{
    97 $ stitcher.py createsliver gpo2utah stitch-ig-gpo-ig-utah.rspec -o 
    98 13:25:59 INFO     stitcher: Loading config file /home/lnevers/.gcf/omni_config
    99 13:25:59 INFO     stitcher: Using control framework portal
    100 13:25:59 INFO     stitcher: Checking that slice gpo2utah is valid...            <==(1)
    101 13:26:00 INFO     stitcher: Slice urn:publicid:IDN+ch.geni.net:ln-prj+slice+gpo2utah expires on 2013-07-25 14:41:19 UTC
    102 13:26:00 INFO     stitcher: <Aggregate urn:publicid:IDN+utah.geniracks.net+authority+cm> speaks AM API v3, but sticking with v2  <==(2)
    103 13:26:00 INFO     stitcher: <Aggregate urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm> speaks AM API v3, but sticking with v2 <==(2)
    104 13:26:00 INFO     stitcher: <Aggregate urn:publicid:IDN+emulab.net+authority+cm> speaks AM API v3, but sticking with v2 <==(2)
    105 13:26:00 INFO     stitch.Aggregate: Writing to '/tmp/gpo2utah-createsliver-request-11-instageni-gpolab-bbn-com.xml' <==(3)
    106 13:26:00 INFO     stitch.Aggregate:
    107         Stitcher doing createsliver at https://boss.instageni.gpolab.bbn.com:12369/protogeni/xmlrpc/am   <==(4)
    108 13:26:16 INFO     stitch.Aggregate: Allocation at <Aggregate urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm> complete.
    109 13:26:16 INFO     stitch.Aggregate: Writing to '/tmp/gpo2utah-createsliver-request-11-emulab-net.xml'    <==(3)
    110 13:26:16 INFO     stitch.Aggregate:
    111         Stitcher doing createsliver at https://www.emulab.net:12369/protogeni/xmlrpc/am    <==(4)
    112 13:26:58 INFO     stitch.Aggregate: Allocation at <Aggregate urn:publicid:IDN+emulab.net+authority+cm> complete.
    113 13:26:58 INFO     stitch.Aggregate: Writing to '/tmp/gpo2utah-createsliver-request-11-utah-geniracks-net.xml'  <==(3)
    114 13:26:58 INFO     stitch.Aggregate:
    115         Stitcher doing createsliver at https://boss.utah.geniracks.net:12369/protogeni/xmlrpc/am  <==(4)
    116 13:27:17 INFO     stitch.Aggregate: Allocation at <Aggregate urn:publicid:IDN+utah.geniracks.net+authority+cm> complete.
    117 13:27:17 INFO     stitch.Aggregate: Writing to '/tmp/gpo2utah-createsliver-request-11-ion-internet2-edu.xml'   <==(3)
    118 13:27:17 INFO     stitch.Aggregate:
    119         Stitcher doing createsliver at http://geni-am.net.internet2.edu:12346 <==(4)
    120 13:28:02 INFO     stitch.Aggregate: DCN AM <Aggregate urn:publicid:IDN+ion.internet2.edu+authority+am>: must wait for status ready....
    121 13:28:02 INFO     stitch.Aggregate: Pause to let circuit become ready...     <==(5)
    122 13:28:39 INFO     stitch.Aggregate: DCN circuit 23221 is ready
    123 13:28:45 INFO     stitch.Aggregate: Allocation at <Aggregate urn:publicid:IDN+ion.internet2.edu+authority+am> complete.
    124 13:28:45 INFO     stitch.launcher: All aggregates are complete.
    125 13:28:45 INFO     stitcher: Writing to 'gpo2utah-manifest-rspec-stitching-combined.xml'
    126 13:28:45 INFO     stitcher: Saved combined reservation RSpec at 4 AMs to file gpo2utah-manifest-rspec-stitching-combined.xml  <==(6)
    127 Stitching success: Reserved resources in slice gpo2utah at 4 Aggregates (including 2 intermediate aggregate(s) not in the original request), creating 1 link(s).
     95$ stitcher.py createsliver gpo2utah stitch-demo.rspec -o
     9610:44:01 INFO     stitcher: Loading agg_nick_cache file '/home/lnevers/.gcf/agg_nick_cache'
     9710:44:01 INFO     stitcher: Loading config file /home/lnevers/.gcf/omni_config
     9810:44:01 INFO     stitcher: Using control framework portal
     9910:44:01 INFO     stitcher: Checking that slice gpo2utah is valid...          <==(1)
     10010:44:02 INFO     stitcher: Slice urn:publicid:IDN+ch.geni.net:ln-prj+slice+gpo2utah expires on 2014-02-07 15:15:42 UTC 
     10110:44:03 INFO     stitcher: <Aggregate urn:publicid:IDN+utah.geniracks.net+authority+cm> speaks AM API v3, but sticking with v2
     10210:44:04 INFO     stitcher: <Aggregate urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm> speaks AM API v3, but sticking with v2
     10310:44:04 INFO     stitcher: <Aggregate urn:publicid:IDN+emulab.net+authority+cm> speaks AM API v3, but sticking with v2
     10410:44:04 INFO     stitcher: Stitched reservation will include resources from these aggregates:   <==(2)
     10510:44:04 INFO     stitcher:     <Aggregate urn:publicid:IDN+utah.geniracks.net+authority+cm>
     10610:44:04 INFO     stitcher:     <Aggregate urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm>
     10710:44:04 INFO     stitcher:     <Aggregate urn:publicid:IDN+emulab.net+authority+cm>
     10810:44:04 INFO     stitcher:     <Aggregate urn:publicid:IDN+ion.internet2.edu+authority+am>
     10910:44:04 INFO     stitch.Aggregate: Writing to '/tmp/gpo2utah-createsliver-request-11-instageni-gpolab-bbn-com.xml'  <==(3)
     11010:44:04 INFO     stitch.Aggregate:
     111        Stitcher doing createsliver at https://boss.instageni.gpolab.bbn.com:12369/protogeni/xmlrpc/am
     11210: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}
     11310: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.
     114protogeni AM code: 1: vlan tag 3746 for 'link' not available.                           <==(4)
     11510: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)
     11610:44:20 INFO     stitch.launcher: Pausing for 30 seconds for Aggregates to free up resources...
     117
     118
     11910:44:50 INFO     stitch.Aggregate: Writing to '/tmp/gpo2utah-createsliver-request-11-emulab-net.xml'
     12010:44:50 INFO     stitch.Aggregate:
     121        Stitcher doing createsliver at https://www.emulab.net:12369/protogeni/xmlrpc/am   <==(5)
     12210:45:27 INFO     stitch.Aggregate: Allocation at <Aggregate urn:publicid:IDN+emulab.net+authority+cm> complete.
     12310:45:27 INFO     stitch.Aggregate: Writing to '/tmp/gpo2utah-createsliver-request-11-utah-geniracks-net.xml'
     12410:45:27 INFO     stitch.Aggregate:
     125        Stitcher doing createsliver at https://boss.utah.geniracks.net:12369/protogeni/xmlrpc/am  <==(5)
     12610:45:54 INFO     stitch.Aggregate: Allocation at <Aggregate urn:publicid:IDN+utah.geniracks.net+authority+cm> complete.
     12710:45:54 INFO     stitch.Aggregate: Writing to '/tmp/gpo2utah-createsliver-request-12-instageni-gpolab-bbn-com.xml'
     12810:45:54 INFO     stitch.Aggregate:
     129        Stitcher doing createsliver at https://boss.instageni.gpolab.bbn.com:12369/protogeni/xmlrpc/am <==(5)
     13010:46:16 INFO     stitch.Aggregate: Allocation at <Aggregate urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm> complete.
     13110:46:16 INFO     stitch.Aggregate: Writing to '/tmp/gpo2utah-createsliver-request-11-ion-internet2-edu.xml'
     13210:46:16 INFO     stitch.Aggregate:
     133        Stitcher doing createsliver at http://geni-am.net.internet2.edu:12346         <==(5)
     13410:47:00 INFO     stitch.Aggregate: DCN AM <Aggregate urn:publicid:IDN+ion.internet2.edu+authority+am>: must wait for status ready....
     13510:47:00 INFO     stitch.Aggregate: Pause 30 seconds to let circuit become ready...  <==(6)
     13610:47:36 INFO     stitch.Aggregate: DCN circuit 62281 is ready
     13710:47:43 INFO     stitch.Aggregate: Allocation at <Aggregate urn:publicid:IDN+ion.internet2.edu+authority+am> complete.
     13810:47:43 INFO     stitch.launcher: All aggregates are complete.
     13910:47:43 INFO     stitcher: Writing to 'gpo2utah-manifest-rspec-stitching-combined.xml'
     14010:47:43 INFO     stitcher: Saved combined reservation RSpec at 4 AMs to
     141file gpo2utah-manifest-rspec-stitching-combined.xml        <==(7)
     142Stitching success: Reserved resources in slice gpo2utah at 4 Aggregates
     143(including 2 intermediate aggregate(s) not in the original request), creating 1 link(s).
    128144
    129145}}}
     
    132148 (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]]
    133149 (3) ''Stitcher.py'' generates a request RSpec for each of the aggregates in the path to request both network and compute resources. [[BR]]
    134  (4) ''Stitcher.py'' creates slivers at each aggregate (path & end-points) [[BR]]
    135  (5) 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]]
    136  (6) A combined manifest Rspec is assembled by ''stitcher.py'' to show all aggregates and VLANs used in the slice.
     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.
    137154
    138155The above stitched scenario sliver creation accomplishes several steps that previously required manual set-up:
     
    152169
    153170{{{
    154         <stitching lastUpdateTime="2013-07-18T17:28:32.833Z" xmlns="http://hpn.east.isi.edu/rspec/ext/stitch/0.1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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">
    155                 <path id="link">
    156                         <globalId>
    157         ion.internet2.edu-23221
    158                         </globalId>
    159                         <lifetime id="ion.internet2.edu-23221">
    160                                 <start type="xgc">
    161           2013-07-25T14:41:19.000Z
    162                                 </start>
    163                                 <end type="xgc">
    164           2013-07-18T17:28:32.833Z
    165                                 </end>
    166                         </lifetime>
    167                         <hop id="1">
    168                                 <link id="urn:publicid:IDN+instageni.gpolab.bbn.com+interface+procurve2:5.24">
    169                                         <trafficEngineeringMetric>
    170                                                 10
    171                                         </trafficEngineeringMetric>
    172                                         <capacity>
    173                                                 100000
    174                                         </capacity>
    175                                         <switchingCapabilityDescriptor>
    176                                                 <switchingcapType>
    177                                                         l2sc
    178                                                 </switchingcapType>
    179                                                 <encodingType>
    180                                                         ethernet
    181                                                 </encodingType>
    182                                                 <switchingCapabilitySpecificInfo>
    183                                                         <switchingCapabilitySpecificInfo_L2sc>
    184                                                                 <interfaceMTU>
    185                                                                         9000
    186                                                                 </interfaceMTU>
    187                                                                 <vlanRangeAvailability>
    188                                                                         3748
    189                                                                 </vlanRangeAvailability>
    190                                                                 <suggestedVLANRange>
    191                                                                         3748
    192                                                                 </suggestedVLANRange>
    193                                                                 <vlanTranslation>
    194                                                                         false
    195                                                                 </vlanTranslation>
    196                                                         </switchingCapabilitySpecificInfo_L2sc>
    197                                                 </switchingCapabilitySpecificInfo>
    198                                         </switchingCapabilityDescriptor>
    199                                 </link>
    200                                 <nextHop>
    201                                         2
    202                                 </nextHop>
    203                         </hop>
    204                         <hop id="2">
    205                                 <link id="urn:publicid:IDN+ion.internet2.edu+interface+rtr.newy:ae0:bbn">
    206                                         <trafficEngineeringMetric>
    207                                         10
    208                                         </trafficEngineeringMetric>
    209                                         <capacity>
    210                                         100000.0
    211                                         </capacity>
    212                                         <switchingCapabilityDescriptor>
    213                                                 <switchingcapType>
    214                                                  l2sc
    215                                                 </switchingcapType>
    216                                                 <encodingType>
    217                                                 ethernet
    218                                                 </encodingType>
    219                                                 <switchingCapabilitySpecificInfo>
    220                                                         <switchingCapabilitySpecificInfo_L2sc>
    221                                                                 <interfaceMTU>
    222                                                                 9000
    223                                                                 </interfaceMTU>
    224                                                                 <vlanRangeAvailability>
    225                                                                  3748
    226                                                                 </vlanRangeAvailability>
    227                                                                 <suggestedVLANRange>
    228                                                                 3748
    229                                                                 </suggestedVLANRange>
    230                                                                 <vlanTranslation>
    231                                                                     true
    232                                                                 </vlanTranslation>
    233                                                         </switchingCapabilitySpecificInfo_L2sc>
    234                                                 </switchingCapabilitySpecificInfo>
    235                                         </switchingCapabilityDescriptor>
    236                                 </link>
    237                                 <nextHop>
    238                                 3
    239                                 </nextHop>
    240                         </hop>
    241                         <hop id="3">
    242                                 <link id="urn:publicid:IDN+ion.internet2.edu+interface+rtr.atla:ge-10/3/2:protogeni">
    243                                         <trafficEngineeringMetric>
    244                                             10
    245                                         </trafficEngineeringMetric>
    246                                         <capacity>
    247                                             100000.0
    248                                         </capacity>
    249                                         <switchingCapabilityDescriptor>
    250                                                 <switchingcapType>
    251                                               l2sc
    252                                                 </switchingcapType>
    253                                                 <encodingType>
    254                                               ethernet
    255                                                 </encodingType>
    256                                                 <switchingCapabilitySpecificInfo>
    257                                                         <switchingCapabilitySpecificInfo_L2sc>
    258                                                                 <interfaceMTU>
    259                                                                   9000
    260                                                                 </interfaceMTU>
    261                                                                 <vlanRangeAvailability>
    262                                                                   973
    263                                                                 </vlanRangeAvailability>
    264                                                                 <suggestedVLANRange>
    265                                                                   973
    266                                                                 </suggestedVLANRange>
    267                                                                 <vlanTranslation>
    268                                                                   true
    269                                                                 </vlanTranslation>
    270                                                         </switchingCapabilitySpecificInfo_L2sc>
    271                                                 </switchingCapabilitySpecificInfo>
    272                                         </switchingCapabilityDescriptor>
    273                                 </link>
    274                                 <nextHop>
    275                             4
    276                         <hop id="4">
    277                                 <link id="urn:publicid:IDN+emulab.net+interface+procurve-pgeni-atla:3.21">
    278                                         <trafficEngineeringMetric>
    279                                                 10
    280                                         </trafficEngineeringMetric>
    281                                         <capacity>
    282                                                 100000
    283                                         </capacity>
    284                                         <switchingCapabilityDescriptor>
    285                                                 <switchingcapType>
    286                                                         l2sc
    287                                                 </switchingcapType>
    288                                                 <encodingType>
    289                                                         ethernet
    290                                                 </encodingType>
    291                                                 <switchingCapabilitySpecificInfo>
    292                                                         <switchingCapabilitySpecificInfo_L2sc>
    293                                                                 <interfaceMTU>
    294                                                                         9000
    295                                                                 </interfaceMTU>
    296                                                                 <vlanRangeAvailability>
    297                                                                         973
    298                                                                 </vlanRangeAvailability>
    299                                                                 <suggestedVLANRange>
    300                                                                         973
    301                                                                 </suggestedVLANRange>
    302                                                                 <vlanTranslation>
    303                                                                         false
    304                                                                 </vlanTranslation>
    305                                                         </switchingCapabilitySpecificInfo_L2sc>
    306                                                 </switchingCapabilitySpecificInfo>
    307                                         </switchingCapabilityDescriptor>
    308                                 </link>
    309                                 <nextHop>
    310                                         5
    311                                 </nextHop>
    312                         </hop>
    313                         <hop id="5">
    314                                 <link id="urn:publicid:IDN+emulab.net+interface+procurveA:3.19">
    315                                         <trafficEngineeringMetric>
    316                                                 10
    317                                         </trafficEngineeringMetric>
    318                                         <capacity>
    319                                                 100000
    320                                         </capacity>
    321                                         <switchingCapabilityDescriptor>
    322                                                 <switchingcapType>
    323                                                         l2sc
    324                                                 </switchingcapType>
    325                                                 <encodingType>
    326                                                         ethernet
    327                                                 </encodingType>
    328                                                 <switchingCapabilitySpecificInfo>
    329                                                         <switchingCapabilitySpecificInfo_L2sc>
    330                                                                 <interfaceMTU>
    331                                                                         9000
    332                                                                 </interfaceMTU>
    333                                                                 <vlanRangeAvailability>
    334                                                                         973
    335                                                                 </vlanRangeAvailability>
    336                                                                 <suggestedVLANRange>
    337                                                                         973
    338                                                                 </suggestedVLANRange>
    339                                                                 <vlanTranslation>
    340                                                                         false
    341                                                                 </vlanTranslation>
    342                                                         </switchingCapabilitySpecificInfo_L2sc>
    343                                                 </switchingCapabilitySpecificInfo>
    344                                         </switchingCapabilityDescriptor>
    345                                 </link>
    346                                 <nextHop>
    347                                         6
    348                                 </nextHop>
    349                         </hop>
    350                         <hop id="6">
    351                                 <link id="urn:publicid:IDN+utah.geniracks.net+interface+procurve2:1.19">
    352                                         <trafficEngineeringMetric>
    353                                                 10
    354                                         </trafficEngineeringMetric>
    355                                         <capacity>
    356                                                 100000
    357                                         </capacity>
    358                                         <switchingCapabilityDescriptor>
    359                                                 <switchingcapType>
    360                                                         l2sc
    361                                                 </switchingcapType>
    362                                                 <encodingType>
    363                                                         ethernet
    364                                                 </encodingType>
    365                                                 <switchingCapabilitySpecificInfo>
    366                                                         <switchingCapabilitySpecificInfo_L2sc>
    367                                                                 <interfaceMTU>
    368                                                                         9000
    369                                                                 </interfaceMTU>
    370                                                                 <vlanRangeAvailability>
    371                                                                         973
    372                                                                 </vlanRangeAvailability>
    373                                                                 <suggestedVLANRange>
    374                                                                         973
    375                                                                 </suggestedVLANRange>
    376                                                                 <vlanTranslation>
    377                                                                         false
    378                                                                 </vlanTranslation>
    379                                                         </switchingCapabilitySpecificInfo_L2sc>
    380                                                 </switchingCapabilitySpecificInfo>
    381                                         </switchingCapabilityDescriptor>
    382                                 </link>
    383                                 <nextHop>
    384                                         null
    385                                 </nextHop>
    386                         </hop>
    387                 </path>
    388         </stitching>
    389 
     171<stitching lastUpdateTime="2014-01-31T15:47:30.314Z"
     172xmlns="http://hpn.east.isi.edu/rspec/ext/stitch/0.1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     173xsi:schemaLocation="http://hpn.east.isi.edu/rspec/ext/stitch/0.1/ http://hpn.east.isi.edu/rspec/ext/stitch/0.1/stitch-schema.xsd">
     174<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>
     294</path>
     295</stitching>
    390296}}}
    391297
    392298In the stitching definition:
    393299
    394   - <hop id="1"> is for the GPO InstaGENI switch (procurve2:5.24) and uses VLAN 3748.
    395   - <hop id='2'> is for the Internet2 router in New York
    396   - <hop id='3'> is for the Internet2 router in Atlanta
    397   - <hop id="4"> is for PG Utah switch that connects PG Utah to ION  (procurve-pgeni-atla:3.21) and uses VLAN 973
    398   - <hop id="5"> is for the Utah PG switch that connects to Utah IG (procurveA:3.19) and uses VLAN 973
    399   - <hop id="6"> is for the Utah InstaGENI switch (procurve2:1.19) and uses VLAN 973
     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
     306
     307Also notice that each of the hops show the bandwidth that was originally requested:
     308{{{
     309   <capacity> 20000 </capacity>
     310}}}
    400311
    401312
     
    406317server-gpo's geni_status is: ready (am_status:ready)
    407318User lnevers logs in to server-gpo using:
    408 
    409         ssh -i /home/lnevers/.ssh/geni_cert_portal_key lnevers@pcvm2-9.instageni.gpolab.bbn.com
    410 
     319        ssh -i /home/lnevers/.ssh/geni_cert_portal_key lnevers@pcvm1-22.instageni.gpolab.bbn.com
    411320
    412321$ readyToLogin.py gpo2utah -a ig-utah
    413 
    414 client-utah's geni_status is: ready (am_status:ready)
     322...client-utah's geni_status is: ready (am_status:ready)
    415323User lnevers logs in to client-utah using:
    416         ssh -p 30010  -i /home/lnevers/.ssh/geni_cert_portal_key lnevers@pc1.utah.geniracks.net
    417 
     324        ssh -p 32826  -i /home/lnevers/.ssh/geni_cert_portal_key lnevers@pc1.utah.geniracks.net
    418325}}}
    419326
    420327We will use the ''server-gpo'' login to determine the routable IP address that was requested for the Web Server:
    421328{{{
    422 $ ssh -i /home/lnevers/.ssh/geni_cert_portal_key lnevers@pcvm2-9.instageni.gpolab.bbn.com
     329$ ssh -i /home/lnevers/.ssh/geni_cert_portal_key lnevers@pcvm1-22.instageni.gpolab.bbn.com
    423330[lnevers@server-gpo ~]$ /sbin/ifconfig
    424 eth999    Link encap:Ethernet  HWaddr 02:95:5A:60:81:53 
    425           inet addr:192.1.242.150  Bcast:192.1.242.255  Mask:255.255.255.128 <==(a)
     331[lnevers@server-gpo ~]$ /sbin/ifconfig
     332eth999    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)
    426334          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
    427           RX packets:17401 errors:0 dropped:0 overruns:0 frame:0
    428           TX packets:11652 errors:0 dropped:0 overruns:0 carrier:0
     335          RX packets:17625 errors:0 dropped:0 overruns:0 frame:0
     336          TX packets:9442 errors:0 dropped:0 overruns:0 carrier:0
    429337          collisions:0 txqueuelen:0
    430           RX bytes:25455837 (24.2 MiB)  TX bytes:649907 (634.6 KiB)
    431 
    432 eth3748   Link encap:Ethernet  HWaddr 02:01:C4:83:9D:2B 
     338          RX bytes:25433110 (24.2 MiB)  TX bytes:530615 (518.1 KiB)
     339
     340eth3711   Link encap:Ethernet  HWaddr 02:0C:AA:C1:1A:1F 
    433341          inet addr:192.168.4.1  Bcast:192.168.4.255  Mask:255.255.255.0
    434342          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
    435           RX packets:57977 errors:0 dropped:0 overruns:0 frame:0
    436           TX packets:32719 errors:0 dropped:0 overruns:0 carrier:0
     343          RX packets:13 errors:0 dropped:0 overruns:0 frame:0
     344          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    437345          collisions:0 txqueuelen:0
    438           RX bytes:83362299 (79.5 MiB)  TX bytes:1785072 (1.7 MiB)
    439 
    440 
    441 }}}
    442  (a) publically routable IP address is 192.1.242.150
     346          RX bytes:576 (576.0 b)  TX bytes:0 (0.0 b)
     347
     348}}}
     349 (a) publically routable IP address is 192.1.242.161
    443350
    444351We can now connect to the web server to verify that iperf tests were run and that the client completed wget operations:
     
    462369Now we start the Layer 2 !PingPlus experiment, by logging into ''client-utah,'' determining its dataplane MAC address and then shutting down IP on that interface:
    463370{{{
    464 $ ssh -p 30010  -i /home/lnevers/.ssh/geni_cert_portal_key lnevers@pc1.utah.geniracks.net
    465 [lnevers@client-utah ~]$ /sbin/ifconfig
    466 eth973    Link encap:Ethernet  HWaddr 02:B6:06:CF:92:79 
     371$ ssh -p 32826  -i /home/lnevers/.ssh/geni_cert_portal_key lnevers@pc1.utah.geniracks.net
     372Last login: Fri Jan 31 09:05:19 2014 from sendaria.gpolab.bbn.com
     373[lnevers@client-utah ~]$  /sbin/ifconfig
     374eth978    Link encap:Ethernet  HWaddr 02:42:BF:A4:A5:45 
    467375          inet addr:192.168.4.2  Bcast:192.168.4.255  Mask:255.255.255.0
    468376          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
    469           RX packets:32745 errors:0 dropped:0 overruns:0 frame:0
    470           TX packets:58027 errors:0 dropped:0 overruns:0 carrier:0
     377          RX packets:11704 errors:0 dropped:0 overruns:0 frame:0
     378          TX packets:19519 errors:0 dropped:0 overruns:0 carrier:0
    471379          collisions:0 txqueuelen:0
    472           RX bytes:1761582 (1.6 MiB)  TX bytes:83465168 (79.5 MiB)
    473 
    474 eth999    Link encap:Ethernet  HWaddr 02:C0:05:4F:14:5
    475           inet addr:172.17.1.1  Bcast:172.31.255.255  Mask:255.240.0.0
     380          RX bytes:626218 (611.5 KiB)  TX bytes:28038324 (26.7 MiB)
     381
     382eth999    Link encap:Ethernet  HWaddr 02:5C:66:E8:6B:A
     383          inet addr:172.17.1.7  Bcast:172.31.255.255  Mask:255.240.0.0
    476384          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
    477           RX packets:16505 errors:0 dropped:0 overruns:0 frame:0
    478           TX packets:8041 errors:0 dropped:0 overruns:0 carrier:0
     385          RX packets:18192 errors:0 dropped:0 overruns:0 frame:0
     386          TX packets:9638 errors:0 dropped:0 overruns:0 carrier:0
    479387          collisions:0 txqueuelen:0
    480           RX bytes:22910002 (21.8 MiB)  TX bytes:431936 (421.8 KiB)
     388          RX bytes:23002760 (21.9 MiB)  TX bytes:582428 (568.7 KiB)
     389
    481390
    482391[lnevers@client-utah ~]$ sudo /sbin/ifconfig eth973 0
     
    486395Now on the server, shutdown IP on the dataplane interface and run Layer 2 !PingPLus:
    487396{{{
    488 [lnevers@server-gpo ~]$ sudo /sbin/ifconfig eth3748 0
    489 [lnevers@server-gpo ~]$ sudo /local/scripts/runPingPlus.sh 02:B6:06:CF:92:79  eth3748
     397[lnevers@server-gpo ~]$ sudo /sbin/ifconfig eth3711 0
     398[lnevers@server-gpo ~]$ sudo /local/scripts/runPingPlus.sh 02:42:BF:A4:A5:45 eth3711
    490399[lnevers@server-gpo ~]$
    491400}}}
     
    506415{{{
    507416$ stitcher.py deletesliver gpo2utah
    508 14:06:49 INFO     stitcher: Loading config file /home/lnevers/.gcf/omni_config
    509 14:06:49 INFO     stitcher: Using control framework portal
    510 14:06:49 INFO     stitcher: Reading stitching slice gpo2utah aggregates from file ch\.geni\.net.ln-prj.gpo2utah-amlist.txt
    511 14:06:49 INFO     stitcher: Adding aggregate option https://boss.utah.geniracks.net:12369/protogeni/xmlrpc/am (urn:publicid:IDN+utah.geniracks.net+authority+cm)
    512 14:06:49 INFO     stitcher: Adding aggregate option https://boss.instageni.gpolab.bbn.com:12369/protogeni/xmlrpc/am (urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm)
    513 14:06:49 INFO     stitcher: Adding aggregate option https://www.emulab.net:12369/protogeni/xmlrpc/am (urn:publicid:IDN+emulab.net+authority+cm)
    514 14:06:49 INFO     stitcher: Adding aggregate option http://geni-am.net.internet2.edu:12346 (urn:publicid:IDN+ion.internet2.edu+authority+am)
    515 14:06:49 INFO     omni: Loading config file /home/lnevers/.gcf/omni_config
    516 14:06:49 INFO     omni: Using control framework portal
    517 14:06:50 INFO     omni: Slice urn:publicid:IDN+ch.geni.net:ln-prj+slice+gpo2utah expires on 2013-07-25 14:41:19 UTC
    518 14:07:42 INFO     omni:  (PG log url - look here for details on any failures: https://boss.utah.geniracks.net/spewlogfile.php3?logfile=e3d387c4d5ad58f9b889a2c7790b0ed0)
    519 14:07:42 INFO     omni: Deleted sliver urn:publicid:IDN+ch.geni.net:ln-prj+slice+gpo2utah on unspecified_AM_URN at https://boss.utah.geniracks.net:12369/protogeni/xmlrpc/am
    520 14:09:20 INFO     omni:  (PG log url - look here for details on any failures: https://www.emulab.net/spewlogfile.php3?logfile=1bb4c8c04af55227d54b5e21419ccdd3)
    521 14:09:20 INFO     omni: Deleted sliver urn:publicid:IDN+ch.geni.net:ln-prj+slice+gpo2utah on unspecified_AM_URN++ at https://www.emulab.net:12369/protogeni/xmlrpc/am
    522 14:09:25 INFO     omni: Deleted sliver urn:publicid:IDN+ch.geni.net:ln-prj+slice+gpo2utah on unspecified_AM_URN+++ at http://geni-am.net.internet2.edu:12346
    523 14:10:21 INFO     omni:  (PG log url - look here for details on any failures: https://boss.instageni.gpolab.bbn.com/spewlogfile.php3?logfile=65c7e0135a681d30e9f4ac46c088a5d8)
    524 14:10:21 INFO     omni: Deleted sliver urn:publicid:IDN+ch.geni.net:ln-prj+slice+gpo2utah on unspecified_AM_URN+ at https://boss.instageni.gpolab.bbn.com:12369/protogeni/xmlrpc/am
     41711:28:11 INFO     stitcher: Loading agg_nick_cache file '/home/lnevers/.gcf/agg_nick_cache'
     41811:28:11 INFO     stitcher: Loading config file /home/lnevers/.gcf/omni_config
     41911:28:11 INFO     stitcher: Using control framework portal
     42011:28:11 INFO     stitcher: Reading stitching slice gpo2utah aggregates from file ch\.geni\.net.ln-prj.gpo2utah-amlist.txt
     42111:28:11 INFO     stitcher: Adding aggregate option https://boss.utah.geniracks.net:12369/protogeni/xmlrpc/am (urn:publicid:IDN+utah.geniracks.net+authority+cm)
     42211:28:11 INFO     stitcher: Adding aggregate option https://boss.instageni.gpolab.bbn.com:12369/protogeni/xmlrpc/am (urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm)
     42311:28:11 INFO     stitcher: Adding aggregate option https://www.emulab.net:12369/protogeni/xmlrpc/am (urn:publicid:IDN+emulab.net+authority+cm)
     42411:28:11 INFO     stitcher: Adding aggregate option http://geni-am.net.internet2.edu:12346 (urn:publicid:IDN+ion.internet2.edu+authority+am)
     42511:28:11 INFO     omni: Loading agg_nick_cache file '/home/lnevers/.gcf/agg_nick_cache'
     42611:28:11 INFO     omni: Loading config file /home/lnevers/.gcf/omni_config
     42711:28:11 INFO     omni: Using control framework portal
     42811:28:12 INFO     omni: Slice urn:publicid:IDN+ch.geni.net:ln-prj+slice+gpo2utah expires on 2014-02-07 15:15:42 UTC
     42911:29:13 INFO     omni:  (PG log url - look here for details on any failures: https://boss.utah.geniracks.net/spewlogfile.php3?logfile=5522324d8d14f2c9aa950314d5d86881)
     43011:29:13 INFO     omni: Deleted sliver urn:publicid:IDN+ch.geni.net:ln-prj+slice+gpo2utah on unspecified_AM_URN at https://boss.utah.geniracks.net:12369/protogeni/xmlrpc/am
     43111:30:04 INFO     omni:  (PG log url - look here for details on any failures: https://www.emulab.net/spewlogfile.php3?logfile=12a477823c87d0e4f6417a15c780788f)
     43211:30:04 INFO     omni: Deleted sliver urn:publicid:IDN+ch.geni.net:ln-prj+slice+gpo2utah on unspecified_AM_URN++ at https://www.emulab.net:12369/protogeni/xmlrpc/am
     43311:30:08 INFO     omni: Deleted sliver urn:publicid:IDN+ch.geni.net:ln-prj+slice+gpo2utah on unspecified_AM_URN+++ at http://geni-am.net.internet2.edu:12346
     43411:31:01 INFO     omni:  (PG log url - look here for details on any failures: https://boss.instageni.gpolab.bbn.com/spewlogfile.php3?logfile=ba4ddf3cc03e020a56f6e325ed0cc9ae)
     43511:31:01 INFO     omni: Deleted sliver urn:publicid:IDN+ch.geni.net:ln-prj+slice+gpo2utah on unspecified_AM_URN+ at https://boss.instageni.gpolab.bbn.com:12369/protogeni/xmlrpc/am
    525436Deleted slivers on 4 out of a possible 4 aggregates
    526 $
    527437}}}
    528438