= EG-EXP-7: Click Router Experiment Acceptance Test = This page captures status for the test case EG-EXP-7, which verifies a click router scenario. This test has been executed for two topologies: - [wiki:GENIRacksHome/InstageniRacks/AcceptanceTestStatus/IG-EXP-7#Scenario1-GPORack Scenario 1 - GPO Rack]: All nodes in topology are in GPO InstaGENI rack. - [wiki:GENIRacksHome/InstageniRacks/AcceptanceTestStatus/IG-EXP-7#Scenario2-GPOandUtahIGRacks Scenario 2 - GPO and Utah Racks]: Resources hostA and 2 click routers in GPO rack;Resources hostB and 2 click routers are in Utah rack. Results for both test scenario are captured in this page. For overall status see the [wiki:GENIRacksHome/InstageniRacks/AcceptanceTestStatus InstaGENI Acceptance Test Status] page. ''Last update: 2013/01/24'' = Test Status = This section captures the status for each step in the acceptance test plan. || '''Step''' ||'''State/Scenario 2:'''|| '''State/Scenario 1:''' ||'''Notes '''||'''Tickets'''|| || Step 1 || [[Color(green,Pass)]] || [[Color(green,Pass)]] || || || || Step 2 || [[Color(green,Pass)]] || [[Color(green,Pass)]] || || || || Step 3 || [[Color(green,Pass)]] || [[Color(green,Pass)]] || || || || Step 4 || [[Color(green,Pass)]] || [[Color(green,Pass)]] || || || || Step 5 || [[Color(green,Pass)]] || [[Color(green,Pass)]] || || || || Step 6 || [[Color(green,Pass)]] || [[Color(green,Pass)]] || || || || Step 7 || || [[Color(green,Pass)]] || || || || Step 8 || || [[Color(green,Pass)]] || || || || Step 9 || || [[Color(green,Pass)]] || || || || Step 10 || || [[Color(green,Pass)]] || || || || Step 11 || || [[Color(green,Pass)]] || || || || Step 12 || || [[Color(green,Pass)]] || || || || Step 13 || || [[Color(green,Pass)]] || || || || Step 14 || || [[Color(green,Pass)]] || || || || Step 15 || || [[Color(green,Pass)]] || || || || Step 16 || || [[Color(green,Pass)]] || || || [[BR]] || '''State Legend''' || '''Description''' || || [[Color(green,Pass)]] || Test completed and met all criteria || || [[Color(#98FB98,Pass: most criteria)]] || Test completed and met most criteria. Exceptions documented || || [[Color(red,Fail)]] || Test completed and failed to meet criteria. || || [[Color(yellow,Complete)]] || Test completed but will require re-execution due to expected changes || || [[Color(orange,Blocked)]] || Blocked by ticketed issue(s). || || [[Color(#63B8FF,In Progress)]] || Currently under test. || [[BR]] = Test Plan Steps = The following aggregate manager nicknames are used in this test case: {{{ ig-utah=,https://utah.geniracks.net/protogeni/xmlrpc/am/2.0 ig-gpo=,https://instageni.gpolab.bbn.com/protogeni/xmlrpc/am/2.0 }}} = Scenario 1 - GPO Rack = == 1. As Experimenter1, request !ListResources from GPO InstaGENI == As user lnevers@bbn.com requested listresources from GPO and Utah InstaGENI aggregates: {{{ $ omni.py listresources -a ig-gpo -o }}} == 2. Review !ListResources == Reviews output file ''rspec-instageni-gpolab-bbn-com-protogeniv2.xml'' to determine available resources. == 3. Define a request RSpec for three VMs at GPO InstaGENI == The RSpec generated is [http://groups.geni.net/geni/browser/trunk/GENIRacks/InstaGENI/Spiral4/RSpecs/AcceptanceTests/IG-EXP-7/IG-EXP-7.rspec IG-EXP-7.rspec] requests a topology shown in here: [[Image(IG-EXP-7-gpo.jpg)]] == 4. Define a request RSpec for GPO InstaGENI == The RSpec generated is [http://groups.geni.net/geni/browser/trunk/GENIRacks/InstaGENI/Spiral4/RSpecs/AcceptanceTests/IG-EXP-7/IG-EXP-7-gpo.rspec IG-EXP-7-gpo.rspec]. == 5. Create slice == Created a slice: {{{ $ omni.py createslice IG-EXP-7 INFO:omni:Loading config file /home/lnevers/.gcf/omni_config INFO:omni:Using control framework pg INFO:omni:Created slice with Name IG-EXP-7, URN urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-EXP-7, Expiration 2013-01-20 00:00:00+00:00 INFO:omni: ------------------------------------------------------------ INFO:omni: Completed createslice: Options as run: framework: pg Args: createslice IG-EXP-7 Result Summary: Created slice with Name IG-EXP-7, URN urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-EXP-7, Expiration 2013-01-20 00:00:00+00:00 INFO:omni: ============================================================ }}} == 6. Create a sliver == In the slice IG-EXP-7 create a slivers at the GPO InstaGENI AM using the RSpecs [http://groups.geni.net/geni/browser/trunk/GENIRacks/InstaGENI/Spiral4/RSpecs/AcceptanceTests/IG-EXP-7/IG-EXP-7-gpo.rspec IG-EXP-7-gpo.rspec]. {{{ $ omni.py createsliver -a ig-gpo IG-EXP-7 IG-EXP-7-gpo.rspec INFO:omni:Loading config file /home/lnevers/.gcf/omni_config INFO:omni:Using control framework pg INFO:omni:Substituting AM nickname ig-gpo with URL http://instageni.gpolab.bbn.com/protogeni/xmlrpc/am/2.0, URN unspecified_AM_URN INFO:omni:Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-EXP-7 expires on 2013-01-20 00:00:00 UTC INFO:omni:Substituting AM nickname ig-gpo with URL http://instageni.gpolab.bbn.com/protogeni/xmlrpc/am/2.0, URN unspecified_AM_URN INFO:omni:Substituting AM nickname ig-gpo with URL http://instageni.gpolab.bbn.com/protogeni/xmlrpc/am/2.0, URN unspecified_AM_URN INFO:omni:Creating sliver(s) from rspec file IG-EXP-7-gpo.rspec for slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-EXP-7 INFO:omni:Got return from CreateSliver for slice IG-EXP-7 at http://instageni.gpolab.bbn.com/protogeni/xmlrpc/am/2.0: INFO:omni: INFO:omni: INFO:omni: ------------------------------------------------------------ INFO:omni: Completed createsliver: Options as run: aggregate: ['ig-gpo'] framework: pg Args: createsliver IG-EXP-7 IG-EXP-7-gpo.rspec Result Summary: Got Reserved resources RSpec from instageni-gpolab-bbn-com-protogeniv2 INFO:omni: ============================================================ }}} == 7. Install Click router == The RSpec used defines the following services to install the click router: {{{ }}} The above services will get the ''click-example.tar.gz'' place it on ''/local'' on the 4 router nodes, unpack the tar.gz file which contains two files: * ''install-script.sh'' - installs click routes v.2.0.1 ran as part of the createsliver. * ''extractClickConfig.py'' - determines MAC and IP settings for the configuration, ran manually after sliver is ready. == 8. Determine Click router settings == The click router setting are determined by the ''extractClickConfig.py'' script. To run this script, determin login for each of the nodes in the experiment at each resource aggregate: {{{ $ readyToLogin.py -a ig-gpo IG-EXP-7 <...> hostA's geni_status is: ready (am_status:ready) User lnevers logins to hostA using: xterm -e ssh -p 30523 -i /home/lnevers/.ssh/id_rsa lnevers@pc2.instageni.gpolab.bbn.com & right's geni_status is: ready (am_status:ready) User lnevers logins to right using: xterm -e ssh -p 30526 -i /home/lnevers/.ssh/id_rsa lnevers@pc2.instageni.gpolab.bbn.com & left's geni_status is: changing (am_status:changing) User lnevers logins to left using: xterm -e ssh -p 30525 -i /home/lnevers/.ssh/id_rsa lnevers@pc2.instageni.gpolab.bbn.com & bottom's geni_status is: ready (am_status:ready) User lnevers logins to bottom using: xterm -e ssh -p 30522 -i /home/lnevers/.ssh/id_rsa lnevers@pc2.instageni.gpolab.bbn.com & top's geni_status is: ready (am_status:ready) User lnevers logins to top using: xterm -e ssh -p 30527 -i /home/lnevers/.ssh/id_rsa lnevers@pc2.instageni.gpolab.bbn.com & hostB's geni_status is: ready (am_status:ready) User lnevers logins to hostB using: xterm -e ssh -p 30524 -i /home/lnevers/.ssh/id_rsa lnevers@pc2.instageni.gpolab.bbn.com & }}} First logged into hostA to verify connection and that host can exchange traffic: {{{ [lnevers@hostA ~]$ ping hostB PING hostB-link-B (10.10.6.2) 56(84) bytes of data. 64 bytes from hostB-link-B (10.10.6.2): icmp_req=1 ttl=61 time=5.67 ms 64 bytes from hostB-link-B (10.10.6.2): icmp_req=2 ttl=61 time=0.104 ms }}} On hostB {{{ [lnevers@hostB ~]$ ping hostA PING hostA-link-A (10.10.1.1) 56(84) bytes of data. 64 bytes from hostA-link-A (10.10.1.1): icmp_req=1 ttl=61 time=0.085 ms 64 bytes from hostA-link-A (10.10.1.1): icmp_req=2 ttl=61 time=0.065 ms }}} ''Note: the pings are left running and will be referenced in later steps.'' Generated configuration on each click router by remotely executing the script provided for the click-example: On ''top'' router: {{{ $ ssh -A -p 30527 -i /home/lnevers/.ssh/id_rsa lnevers@pc2.instageni.gpolab.bb n.com "/local/click-example/extractClickConfig.py " Your host information: hostA: hostA.IG-EXP-7.pgeni-gpolab-bbn-com.instageni.gpolab.bbn.com pc2.instageni.gpolab.bbn.com top: top.IG-EXP-7.pgeni-gpolab-bbn-com.instageni.gpolab.bbn.com pc2.instageni.gpolab.bbn.com left: left.IG-EXP-7.pgeni-gpolab-bbn-com.instageni.gpolab.bbn.com pc2.instageni.gpolab.bbn.com right: right.IG-EXP-7.pgeni-gpolab-bbn-com.instageni.gpolab.bbn.com pc2.instageni.gpolab.bbn.com bottom: bottom.IG-EXP-7.pgeni-gpolab-bbn-com.instageni.gpolab.bbn.com pc2.instageni.gpolab.bbn.com hostB: hostB.IG-EXP-7.pgeni-gpolab-bbn-com.instageni.gpolab.bbn.com pc2.instageni.gpolab.bbn.com Done. }}} On ''left'' router: {{{ $ ssh -A -p 30525 -i /home/lnevers/.ssh/id_rsa lnevers@pc2.instageni.gpolab.bbn.com "/local/click-example/extractClickConfig.py " Warning: Permanently added '[pc2.instageni.gpolab.bbn.com]:30525,[192.1.242.141]:30525' (RSA) to the list of known hosts. Your host information: hostA: hostA.IG-EXP-7.pgeni-gpolab-bbn-com.instageni.gpolab.bbn.com pc2.instageni.gpolab.bbn.com top: top.IG-EXP-7.pgeni-gpolab-bbn-com.instageni.gpolab.bbn.com pc2.instageni.gpolab.bbn.com left: left.IG-EXP-7.pgeni-gpolab-bbn-com.instageni.gpolab.bbn.com pc2.instageni.gpolab.bbn.com right: right.IG-EXP-7.pgeni-gpolab-bbn-com.instageni.gpolab.bbn.com pc2.instageni.gpolab.bbn.com bottom: bottom.IG-EXP-7.pgeni-gpolab-bbn-com.instageni.gpolab.bbn.com pc2.instageni.gpolab.bbn.com hostB: hostB.IG-EXP-7.pgeni-gpolab-bbn-com.instageni.gpolab.bbn.com pc2.instageni.gpolab.bbn.com Done. }}} On ''right'' router: {{{ $ ssh -A -p 30526 -i /home/lnevers/.ssh/id_rsa lnevers@pc2.instageni.gpolab.bbn.com "/local/click-example/extractClickConfig.py " Warning: Permanently added '[pc2.instageni.gpolab.bbn.com]:30526,[192.1.242.141]:30526' (RSA) to the list of known hosts. Your host information: hostA: hostA.IG-EXP-7.pgeni-gpolab-bbn-com.instageni.gpolab.bbn.com pc2.instageni.gpolab.bbn.com top: top.IG-EXP-7.pgeni-gpolab-bbn-com.instageni.gpolab.bbn.com pc2.instageni.gpolab.bbn.com left: left.IG-EXP-7.pgeni-gpolab-bbn-com.instageni.gpolab.bbn.com pc2.instageni.gpolab.bbn.com right: right.IG-EXP-7.pgeni-gpolab-bbn-com.instageni.gpolab.bbn.com pc2.instageni.gpolab.bbn.com bottom: bottom.IG-EXP-7.pgeni-gpolab-bbn-com.instageni.gpolab.bbn.com pc2.instageni.gpolab.bbn.com hostB: hostB.IG-EXP-7.pgeni-gpolab-bbn-com.instageni.gpolab.bbn.com pc2.instageni.gpolab.bbn.com Done. }}} On ''bottom'' router: {{{ $ ssh -A -p 30522 -i /home/lnevers/.ssh/id_rsa lnevers@pc2.instageni.gpolab.bbn.com "/local/click-example/extractClickConfig.py " Your host information: hostA: hostA.IG-EXP-7.pgeni-gpolab-bbn-com.instageni.gpolab.bbn.com pc2.instageni.gpolab.bbn.com top: top.IG-EXP-7.pgeni-gpolab-bbn-com.instageni.gpolab.bbn.com pc2.instageni.gpolab.bbn.com left: left.IG-EXP-7.pgeni-gpolab-bbn-com.instageni.gpolab.bbn.com pc2.instageni.gpolab.bbn.com right: right.IG-EXP-7.pgeni-gpolab-bbn-com.instageni.gpolab.bbn.com pc2.instageni.gpolab.bbn.com bottom: bottom.IG-EXP-7.pgeni-gpolab-bbn-com.instageni.gpolab.bbn.com pc2.instageni.gpolab.bbn.com hostB: hostB.IG-EXP-7.pgeni-gpolab-bbn-com.instageni.gpolab.bbn.com pc2.instageni.gpolab.bbn.com Done. }}} The above operations generate an image of the topology. Which can be retrieved from each router: {{{ scp -P 30522 pc2.instageni.gpolab.bbn.com:myslice.png . }}} The file generated can be viewed as follows: {{{ eog myslice.png & }}} The image generated for this experimented showed the following: [[Image(myslice.jpg)]] == 9. Run the user-level Click router == First, checked to make sure that pings are still running between hostA and hostB and using IP. At this point stopped IP on each of the routers: {{{ # top router $ ssh -A -p 30527 pc2.instageni.gpolab.bbn.com "sh stopIP.sh " Disabling IP on interface mv10.5 Disabling IP on interface mv10.7 # left router $ ssh -A -p 30525 pc2.instageni.gpolab.bbn.com "sh stopIP.sh " Disabling IP on interface mv8.6 Disabling IP on interface mv8.9 # right router $ ssh -A -p 30526 pc2.instageni.gpolab.bbn.com "sh stopIP.sh " Disabling IP on interface mv9.8 Disabling IP on interface mv9.12 # bottom router $ ssh -A -p 30522 pc2.instageni.gpolab.bbn.com "sh stopIP.sh " Disabling IP on interface mv5.10 Disabling IP on interface mv5.11 }}} After verifying that pings are failing, started the user-level Click router by providing the print pings configuration file name. Leave terminal connection open: {{{ # top router $ ssh -A -p 30527 pc2.instageni.gpolab.bbn.com "sh ./startClick.sh" Stopping any running Click routers Starting Click router # left router $ ssh -A -p 30525 pc2.instageni.gpolab.bbn.com "sh ./startClick.sh" Stopping any running Click routers Starting Click router # right router $ ssh -A -p 30526 pc2.instageni.gpolab.bbn.com "sh ./startClick.sh" Stopping any running Click routers Starting Click router # bottom router $ ssh -A -p 30522 pc2.instageni.gpolab.bbn.com "sh ./startClick.sh" Stopping any running Click routers Starting Click router }}} == 10. Log in to Host1 and send traffic to host2 == Verified that pings, which had stopped when IP was disabled, do resume between hostA and hostB when click router is started. == 11. Review Click logs on each Click router == Each of the click routers generates a /tmp/click.log file. Below is an example from the bottom click router: {{{ $ ssh -A -p 30522 pc2.instageni.gpolab.bbn.com Last login: Wed Jan 16 14:43:36 2013 from arendia.gpolab.bbn.com [lnevers@bottom ~]$ more /tmp/click.log bottom.click:34: While initializing 'FromDevice@18 :: FromDevice': warning: mv5.10: no IPv4 address assigned bottom.click:35: While initializing 'FromDevice@21 :: FromDevice': warning: mv5.11: no IPv4 address assigned outL: 114 | 0285d930 84a002be cc48e782 7744426f 62576173 48657265 inR: 114 | 02a78ae6 971502aa 46be6629 7744416c 69636557 61734865 inL: 114 | 02becc48 e7820285 d93084a0 7744416c 69636557 61734865 outR: 114 | 02aa46be 662902a7 8ae69715 7744426f 62576173 48657265 outL: 114 | 0285d930 84a002be cc48e782 7744426f 62576173 48657265 inL: 114 | 02becc48 e7820285 d93084a0 7744416c 69636557 61734865 inL: 114 | 02becc48 e7820285 d93084a0 7744416c 69636557 61734865 outL: 114 | 0285d930 84a002be cc48e782 7744426f 62576173 48657265 outL: 114 | 0285d930 84a002be cc48e782 7744426f 62576173 48657265 inR: 114 | 02a78ae6 971502aa 46be6629 7744416c 69636557 61734865 inL: 114 | 02becc48 e7820285 d93084a0 7744416c 69636557 61734865 outR: 114 | 02aa46be 662902a7 8ae69715 7744426f 62576173 48657265 outL: 114 | 0285d930 84a002be cc48e782 7744426f 62576173 48657265 inL: 114 | 02becc48 e7820285 d93084a0 7744416c 69636557 61734865 inL: 114 | 02becc48 e7820285 d93084a0 7744416c 69636557 61734865 outL: 114 | 0285d930 84a002be cc48e782 7744426f 62576173 48657265 outL: 114 | 0285d930 84a002be cc48e782 7744426f 62576173 48657265 inR: 114 | 02a78ae6 971502aa 46be6629 7744416c 69636557 61734865 inL: 114 | 02becc48 e7820285 d93084a0 7744416c 69636557 61734865 outR: 114 | 02aa46be 662902a7 8ae69715 7744426f 62576173 48657265 }}} == 16. Delete slivers == Deleted the sliver at the GPO InstaGENI aggregate: {{{ $ omni.py deletesliver -a ig-gpo IG-EXP-7 INFO:omni:Loading config file /home/lnevers/.gcf/omni_config INFO:omni:Using control framework pg INFO:omni:Substituting AM nickname ig-gpo with URL http://instageni.gpolab.bbn.com/protogeni/xmlrpc/am/2.0, URN unspecified_AM_URN INFO:omni:Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-EXP-7 expires on 2013-01-20 00:00:00 UTC INFO:omni:Substituting AM nickname ig-gpo with URL http://instageni.gpolab.bbn.com/protogeni/xmlrpc/am/2.0, URN unspecified_AM_URN INFO:omni:Deleted sliver urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-EXP-7 on unspecified_AM_URN at http://instageni.gpolab.bbn.com/protogeni/xmlrpc/am/2.0 INFO:omni: ------------------------------------------------------------ INFO:omni: Completed deletesliver: Options as run: aggregate: ['ig-gpo'] framework: pg Args: deletesliver IG-EXP-7 Result Summary: Deleted sliver urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-EXP-7 on unspecified_AM_URN at http://instageni.gpolab.bbn.com/protogeni/xmlrpc/am/2.0 INFO:omni: ============================================================ }}} = Scenario 2 - GPO and Utah IG Racks = == 1. As Experimenter1, request !ListResources from GPO and Utah InstaGENI == As user lnevers@bbn.com requested listresources from GPO and Utah InstaGENI aggregates: {{{ $ omni.py listresources -a ig-gpo -o $ omni.py listresources -a ig-utah -o }}} == 2. Review !ListResources output from both AMs == Reviews output files ''rspec-instageni-gpolab-bbn-com-protogeniv2.xml'' and ''rspec-utah-geniracks-net-protogeniv2.xml'' to determine available resources. == 3. Define a request RSpec for three VMs at GPO InstaGENI == For InstaGENI aggregates, the RSpec for a sliver can include resources from multiple aggregates. The aggregate handling the request will only allocate its own resources, therefore one RSpec is used to capture the resource requests for both sites in this scenario. Defined an RSpec that requests one three VMs at the GPO rack and three VMs at the Utah rack. For each rack aggregate, one of the VMs will be an end-point host and the other two VMs will be click routers. The RSpec generated is [http://groups.geni.net/geni/browser/trunk/GENIRacks/InstaGENI/Spiral4/RSpecs/AcceptanceTests/IG-EXP-7/IG-EXP-7.rspec IG-EXP-7.rspec]. This RSpec defines IP addresses because GRE tunnels require that an address be defined. The topology and address scheme are shown below using client_ids defined in the RSpec:[[BR]] [[Image(IG-EXP-7.jpg)]] ''Note: link-1 and link-2 are GRE tunnels.'' == 4. Define a request RSpec for three VMs at Utah InstaGENI == The RSpec generated for the GPO aggregate is also used for the Utah aggregate, the file is [http://groups.geni.net/geni/browser/trunk/GENIRacks/InstaGENI/Spiral4/RSpecs/AcceptanceTests/IG-EXP-7/IG-EXP-7.rspec IG-EXP-7.rspec]. == 5. Create slice == Created a slice: {{{ $ omni.py createslice IG-EXP-7 INFO:omni:Loading config file /home/lnevers/.gcf/omni_config INFO:omni:Using control framework pg INFO:omni:Created slice with Name IG-EXP-7, URN urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-EXP-7, Expiration 2013-01-25 00:00:00+00:00 INFO:omni: ------------------------------------------------------------ INFO:omni: Completed createslice: Options as run: framework: pg Args: createslice IG-EXP-7 Result Summary: Created slice with Name IG-EXP-7, URN urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-EXP-7, Expiration 2013-01-25 00:00:00+00:00 INFO:omni: ============================================================ }}} == 6. Create slivers == In the slice IG-EXP-7 create a slivers at each AM, using the RSpecs [http://groups.geni.net/geni/browser/trunk/GENIRacks/InstaGENI/Spiral4/RSpecs/AcceptanceTests/IG-EXP-7/IG-EXP-7.rspec IG-EXP-7.rspec] defined above. {{{ $ omni.py createsliver -a ig-gpo IG-EXP-7 IG-EXP-7.rspec INFO:omni:Loading config file /home/lnevers/.gcf/omni_config INFO:omni:Using control framework pg INFO:omni:Substituting AM nickname ig-gpo with URL http://instageni.gpolab.bbn.com/protogeni/xmlrpc/am/2.0, URN unspecified_AM_URN INFO:omni:Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-EXP-7 expires within 1 day on 2013-01-25 00:00:00 UTC INFO:omni:Substituting AM nickname ig-gpo with URL http://instageni.gpolab.bbn.com/protogeni/xmlrpc/am/2.0, URN unspecified_AM_URN INFO:omni:Substituting AM nickname ig-gpo with URL http://instageni.gpolab.bbn.com/protogeni/xmlrpc/am/2.0, URN unspecified_AM_URN INFO:omni:Creating sliver(s) from rspec file IG-EXP-7.rspec for slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-EXP-7 INFO:omni:Got return from CreateSliver for slice IG-EXP-7 at http://instageni.gpolab.bbn.com/protogeni/xmlrpc/am/2.0: INFO:omni: INFO:omni: INFO:omni: ------------------------------------------------------------ INFO:omni: Completed createsliver: Options as run: aggregate: ['ig-gpo'] framework: pg Args: createsliver IG-EXP-7 IG-EXP-7.rspec Result Summary: Got Reserved resources RSpec from instageni-gpolab-bbn-com-protogeniv2 INFO:omni: ============================================================ $ omni.py createsliver -a ig-utah IG-EXP-7 IG-EXP-7.rspec INFO:omni:Loading config file /home/lnevers/.gcf/omni_config INFO:omni:Using control framework pg INFO:omni:Substituting AM nickname ig-utah with URL http://utah.geniracks.net/protogeni/xmlrpc/am/2.0, URN unspecified_AM_URN INFO:omni:Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-EXP-7 expires within 1 day on 2013-01-25 00:00:00 UTC INFO:omni:Substituting AM nickname ig-utah with URL http://utah.geniracks.net/protogeni/xmlrpc/am/2.0, URN unspecified_AM_URN INFO:omni:Substituting AM nickname ig-utah with URL http://utah.geniracks.net/protogeni/xmlrpc/am/2.0, URN unspecified_AM_URN INFO:omni:Creating sliver(s) from rspec file IG-EXP-7.rspec for slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-EXP-7 INFO:omni:Got return from CreateSliver for slice IG-EXP-7 at http://utah.geniracks.net/protogeni/xmlrpc/am/2.0: INFO:omni: INFO:omni: INFO:omni: ------------------------------------------------------------ INFO:omni: Completed createsliver: Options as run: aggregate: ['ig-utah'] framework: pg Args: createsliver IG-EXP-7 IG-EXP-7.rspec Result Summary: Got Reserved resources RSpec from utah-geniracks-net-protogeniv2 INFO:omni: ============================================================ }}} == 7. Install Click router == The Rspec used defines the following services to install the click router: {{{ }}} The above service will get the ''click-example.tar.gz'' place it on ''/local'' on the 4 router nodes, unpack the tar.gz file which contains two files: * ''install-script.sh'' - installs click routes v.2.0.1 ran as part of the createsliver. * ''extractClickConfig.py'' - determines MAC and IP settings for the configuration, ran manually after sliver is ready. == 8. Determine Click router settings == The click router setting are determined by the ''extractClickConfig.py'' script. To run this script, determin login for each of the nodes in the experiment at each resource aggregate: {{{ $ readyToLogin.py -a ig-gpo IG-EXP-7 <...> top's geni_status is: changing (am_status:ready) User lnevers logins to top using: xterm -e ssh -p 30780 -i /home/lnevers/.ssh/id_rsa lnevers@pc1.instageni.gpolab.bbn.com & left's geni_status is: changing (am_status:ready) User lnevers logins to left using: xterm -e ssh -p 30779 -i /home/lnevers/.ssh/id_rsa lnevers@pc1.instageni.gpolab.bbn.com & hostA's geni_status is: changing (am_status:ready) User lnevers logins to hostA using: xterm -e ssh -p 30778 -i /home/lnevers/.ssh/id_rsa lnevers@pc1.instageni.gpolab.bbn.com & $ readyToLogin.py -a ig-utah IG-EXP-7 <...> right's geni_status is: changing (am_status:ready) User lnevers logins to right using: xterm -e ssh -p 31036 -i /home/lnevers/.ssh/id_rsa lnevers@pc5.utah.geniracks.net & hostB's geni_status is: ready (am_status:ready) User lnevers logins to hostB using: xterm -e ssh -p 31035 -i /home/lnevers/.ssh/id_rsa lnevers@pc5.utah.geniracks.net & bottom's geni_status is: ready (am_status:ready) User lnevers logins to bottom using: xterm -e ssh -p 31034 -i /home/lnevers/.ssh/id_rsa lnevers@pc5.utah.geniracks.net & }}} Note: The sliver for each aggregate only includes hostname for the local aggregate, to simplify the experiment, added the GPO nodes to the Utah nodes /etc/hosts definitions, and vice versa. First logged into hostA and hostB to verify connection are in place: ???? == 9. Run the user-level Click router == Login to each of the routers, and run the user-level Click router by providing the print pings configuration file name. Leave terminal connection open: {{{ $ cd /local/click/userlevel $ sudo ./click ~/click.conf }}} == 10. Log in to Host1 and send traffic to host2 == Log in to host1 and send traffic to host2 and leave traffic running. Review the output on the terminal for each of the Log in to host2 and send traffic to host1 == 11. Review Click logs on each Click router == == 16. Delete slivers ==