= IG-EXP-6: InstaGENI and Meso-scale Multi-site OpenFlow Acceptance Test = This page captures status for the test case IG-EXP-6, which verifies InstaGENI rack interoperability with other meso-scale GENI sites. For overall status see the [wiki:GENIRacksHome/InstageniRacks/AcceptanceTestStatus InstaGENI Acceptance Test Status] page. ''Last Updates: 2013/01/08'' = Test Status = This section captures the status for each step in the acceptance test plan. || '''Step''' || '''State''' || '''Date completed''' ||''' Ticket ''' || '''Comments''' || || Step 1 || || || || || || Step 2 || || || || || || Step 3 || || || || || || Step 4 || || || || || || Step 5 || || || || || || Step 6 || || || || || || Step 7 || || || || || || Step 8 || || || || || || Step 9 || || || || || || Step 10 || || || || || || Step 11 || || || || || || Step 12 || || || || || || Step 13 || || || || || || Step 14 || || || || || || Step 15 || || || || || || Step 16 || || || || || || Step 17 || || || || || || Step 18 || || || || || || Step 19 || || || || || || Step 20 || || || || || || Step 21 || || || || || || Step 22 || || || || || || Step 23 || || || || || || Step 24 || || || || || || Step 25 || || || || || || Step 26 || || || || || || Step 27 || || || || || || Step 28 || || || || || || Step 29 || || || || || || Step 30 || || || || || || Step 31 || || || || || || Step 32 || || || || || || Step 33 || || || || || || Step 34 || || || || || || Step 35 || || || || || || Step 36 || || || || || || Step 37 || || || || || || Step 38 || || || || || || Step 39 || || || || || || Step 40 || || || || || || Step 41 || || || || || [[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 tests described in this page are executed at Utah and GPO InstaGENI racks, as planned. Three user credentials are used to execute the experiments, lnevers@bbn.com, lnevers1@bbn.com, and lnever2@bbn.com. Additionally the following aggregate manager nicknames are used: {{{ ig-utah=,https://utah.geniracks.net/protogeni/xmlrpc/am/2.0 ig-gpo=,https://instageni.gpolab.bbn.com/protogeni/xmlrpc/am/2.0 pg-utah=,https://www.emulab.net:12369/protogeni/xmlrpc/am/2.0 }}} ''Note: The WAPG node at Indiana and the PG Utah node on shared VLAN 1750 are reserved with the same RSpec. '' == 1. As Experimenter1, request !ListResources == As user lnevers@bbn.com get a listersources at GPO InstaGENI, Utah InstaGENI, and from FOAM at InstaGENI GPO, GPO FOAM, NLR FOAM, UEN FOAM and Utah InstaGENI: {{{ $ omni.py listresources -a ig-utah -o # InstaGENI Utah $ omni.py listresources -a ig-of-utah -V1 -o # InstaGENI FOAM $ omni.py listresources -a of-uen -V1 -o # FOAM UEN Regional $ omni.py listresources -a of-nlr -V1 -o # FOAM NLR $ omni.py listresources -a of-i2 -V1 -o # FOAM Internet2 $ omni.py listresources -a of-gpo -V1 -o # GPO SITE FOAM $ omni.py listresources -a ig-of-gpo -V1 -o # InstaGENI FOAM $ omni.py listresources -a ig-gpo -o # InstaGENI GPO }}} == 2. Review !ListResources == Output files for all AMs are reviewed to determine resources. == 3. Define a request RSpec for a VM at the GPO InstaGENI == Defined an RSpec that requests one VM on shared VLAN 1750 in the GPO Rack, the RSpec generated is [IG-EXP-6-exp1-ig-gpo.rspec] == 4. Define a request RSpec for a VM at the Utah InstaGENI == Defined an RSpec that requests one VM on shared VLAN 1750 in the Utah Rack, the RSpec generated is [IG-EXP-6-exp1-ig-utah.rspec] The Utah InstaGENI rack is available via the UEN Regional FOAM, which requires the RSpec [IG-EXP-6-exp1-openflow-uen.rspec]. == 5. Define request RSpecs for !OpenFlow resources from BBN FOAM == Defined an RSpec for the BBN site FOAM to access GENI !OpenFlow core resources, the RSpec generated is [IG-EXP-6-exp1-openflow-gpo.rspec] == 6. Define request RSpecs for !OpenFlow core resources at I2 FOAM == Defined an for the Internet2 FOAM, the RSpec generated is [IG-EXP-6-exp1-openflow-i2.rspec] == 7. Define request RSpecs for !OpenFlow core resources at NLR FOAM == Defined an RSpec for the NLR FOAM !OpenFlow core resources, the RSpec generated is [IG-EXP-6-exp1-openflow-nlr.rspec] == 8. Create the first slice == As user lnevers@bbn.com created the first slice: {{{ $ omni.py createslice IG-EXP-6-exp1 }}} == 9. Create a sliver in the first slice at each AM == Using the RSpecs defined above, created a sliver at each AM. First created sliver at GPO InstaGENI rack: {{{ $ omni.py createsliver IG-EXP-6-exp1 -a ig-gpo IG-EXP-6-exp1-ig-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-6-exp1 expires on 2013-01-11 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-6-exp1-ig-gpo.rspec for slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-EXP-6-exp1 INFO:omni:Got return from CreateSliver for slice IG-EXP-6-exp1 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-6-exp1 IG-EXP-6-exp1-ig-gpo.rspec Result Summary: Got Reserved resources RSpec from instageni-gpolab-bbn-com-protogeniv2 INFO:omni: ============================================================ }}} Created sliver at GPO Site FOAM: {{{ $ omni.py createsliver IG-EXP-6-exp1 -a of-gpo IG-EXP-6-exp1-openflow-gpo.rspec INFO:omni:Loading config file /home/lnevers/.gcf/omni_config INFO:omni:Using control framework pg INFO:omni:Substituting AM nickname of-gpo with URL https://foam.gpolab.bbn.com:3626/foam/gapi/1, URN unspecified_AM_URN WARNING:omni:You asked to use AM API 2, but the AM(s) you are contacting do not all speak that version. WARNING:omni:At the URLs you are contacting, all your AMs speak AM API v1. WARNING:omni:Switching to AM API v1. Next time call Omni with '-V1'. INFO:omni:Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-EXP-6-exp1 expires on 2013-01-11 00:00:00 UTC INFO:omni:Substituting AM nickname of-gpo with URL https://foam.gpolab.bbn.com:3626/foam/gapi/1, URN unspecified_AM_URN INFO:omni:Substituting AM nickname of-gpo with URL https://foam.gpolab.bbn.com:3626/foam/gapi/1, URN unspecified_AM_URN INFO:omni:Creating sliver(s) from rspec file IG-EXP-6-exp1-openflow-gpo.rspec for slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-EXP-6-exp1 INFO:omni:Got return from CreateSliver for slice IG-EXP-6-exp1 at https://foam.gpolab.bbn.com:3626/foam/gapi/1: INFO:omni: INFO:omni: INFO:omni: INFO:omni: ------------------------------------------------------------ INFO:omni: Completed createsliver: Options as run: aggregate: ['of-gpo'] api_version: 1 framework: pg Args: createsliver IG-EXP-6-exp1 IG-EXP-6-exp1-openflow-gpo.rspec Result Summary: Your AMs do not all speak requested API v2. At the URLs you are contacting, all your AMs speak AM API v1. Switching to AM API v1. Next time call Omni with '-V1'. Got Reserved resources RSpec from foam-gpolab-bbn-com INFO:omni: ============================================================ }}} Created sliver at NLR FOAM: {{{ $ omni.py createsliver IG-EXP-6-exp1 -a of-nlr IG-EXP-6-exp1-openflow-nlr.rspec INFO:omni:Loading config file /home/lnevers/.gcf/omni_config INFO:omni:Using control framework pg INFO:omni:Substituting AM nickname of-nlr with URL https://foam.nlr.net:3626/foam/gapi/1, URN unspecified_AM_URN WARNING:omni:You asked to use AM API 2, but the AM(s) you are contacting do not all speak that version. WARNING:omni:At the URLs you are contacting, all your AMs speak AM API v1. WARNING:omni:Switching to AM API v1. Next time call Omni with '-V1'. INFO:omni:Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-EXP-6-exp1 expires on 2013-01-11 00:00:00 UTC INFO:omni:Substituting AM nickname of-nlr with URL https://foam.nlr.net:3626/foam/gapi/1, URN unspecified_AM_URN INFO:omni:Substituting AM nickname of-nlr with URL https://foam.nlr.net:3626/foam/gapi/1, URN unspecified_AM_URN INFO:omni:Creating sliver(s) from rspec file IG-EXP-6-exp1-openflow-nlr.rspec for slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-EXP-6-exp1 INFO:omni:Got return from CreateSliver for slice IG-EXP-6-exp1 at https://foam.nlr.net:3626/foam/gapi/1: INFO:omni: INFO:omni: INFO:omni: INFO:omni: ------------------------------------------------------------ INFO:omni: Completed createsliver: Options as run: aggregate: ['of-nlr'] api_version: 1 framework: pg Args: createsliver IG-EXP-6-exp1 IG-EXP-6-exp1-openflow-nlr.rspec Result Summary: Your AMs do not all speak requested API v2. At the URLs you are contacting, all your AMs speak AM API v1. Switching to AM API v1. Next time call Omni with '-V1'. Got Reserved resources RSpec from foam-nlr-net INFO:omni: ============================================================ }}} Created sliver at Internet2 FOAM: {{{ $ omni.py createsliver IG-EXP-6-exp1 -a of-i2 IG-EXP-6-exp1-openflow-i2.rspec INFO:omni:Loading config file /home/lnevers/.gcf/omni_config INFO:omni:Using control framework pg INFO:omni:Substituting AM nickname of-i2 with URL https://foam.net.internet2.edu:3626/foam/gapi/1, URN unspecified_AM_URN WARNING:omni:You asked to use AM API 2, but the AM(s) you are contacting do not all speak that version. WARNING:omni:At the URLs you are contacting, all your AMs speak AM API v1. WARNING:omni:Switching to AM API v1. Next time call Omni with '-V1'. INFO:omni:Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-EXP-6-exp1 expires on 2013-01-11 00:00:00 UTC INFO:omni:Substituting AM nickname of-i2 with URL https://foam.net.internet2.edu:3626/foam/gapi/1, URN unspecified_AM_URN INFO:omni:Substituting AM nickname of-i2 with URL https://foam.net.internet2.edu:3626/foam/gapi/1, URN unspecified_AM_URN INFO:omni:Creating sliver(s) from rspec file IG-EXP-6-exp1-openflow-i2.rspec for slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-EXP-6-exp1 INFO:omni:Got return from CreateSliver for slice IG-EXP-6-exp1 at https://foam.net.internet2.edu:3626/foam/gapi/1: INFO:omni: INFO:omni: INFO:omni: INFO:omni: ------------------------------------------------------------ INFO:omni: Completed createsliver: Options as run: aggregate: ['of-i2'] api_version: 1 framework: pg Args: createsliver IG-EXP-6-exp1 IG-EXP-6-exp1-openflow-i2.rspec Result Summary: Your AMs do not all speak requested API v2. At the URLs you are contacting, all your AMs speak AM API v1. Switching to AM API v1. Next time call Omni with '-V1'. Got Reserved resources RSpec from foam-net-internet2-edu INFO:omni: ============================================================ }}} Created sliver at UEN FOAM: {{{ $ omni.py createsliver IG-EXP-6-exp1 -a of-uen IG-EXP-6-exp1-openflow-uen.rspec INFO:omni:Loading config file /home/lnevers/.gcf/omni_config INFO:omni:Using control framework pg INFO:omni:Substituting AM nickname of-uen with URL https://foamyflow.chpc.utah.edu:3626/foam/gapi/1, URN unspecified_AM_URN WARNING:omni:You asked to use AM API 2, but the AM(s) you are contacting do not all speak that version. WARNING:omni:At the URLs you are contacting, all your AMs speak AM API v1. WARNING:omni:Switching to AM API v1. Next time call Omni with '-V1'. INFO:omni:Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-EXP-6-exp1 expires on 2013-01-11 00:00:00 UTC INFO:omni:Substituting AM nickname of-uen with URL https://foamyflow.chpc.utah.edu:3626/foam/gapi/1, URN unspecified_AM_URN INFO:omni:Substituting AM nickname of-uen with URL https://foamyflow.chpc.utah.edu:3626/foam/gapi/1, URN unspecified_AM_URN INFO:omni:Creating sliver(s) from rspec file IG-EXP-6-exp1-openflow-uen.rspec for slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-EXP-6-exp1 INFO:omni:Got return from CreateSliver for slice IG-EXP-6-exp1 at https://foamyflow.chpc.utah.edu:3626/foam/gapi/1: INFO:omni: INFO:omni: INFO:omni: INFO:omni: ------------------------------------------------------------ INFO:omni: Completed createsliver: Options as run: aggregate: ['of-uen'] api_version: 1 framework: pg Args: createsliver IG-EXP-6-exp1 IG-EXP-6-exp1-openflow-uen.rspec Result Summary: Your AMs do not all speak requested API v2. At the URLs you are contacting, all your AMs speak AM API v1. Switching to AM API v1. Next time call Omni with '-V1'. Got Reserved resources RSpec from foamyflow-chpc-utah-edu INFO:omni: ============================================================ }}} Created sliver at Utah InstaGENI Rack: {{{ $ omni.py createsliver IG-EXP-6-exp1 -a ig-utah IG-EXP-6-exp1-ig-utah.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-6-exp1 expires on 2013-01-11 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-6-exp1-ig-utah.rspec for slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-EXP-6-exp1 INFO:omni:Got return from CreateSliver for slice IG-EXP-6-exp1 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-6-exp1 IG-EXP-6-exp1-ig-utah.rspec Result Summary: Got Reserved resources RSpec from utah-geniracks-net-protogeniv2 INFO:omni: ============================================================ }}} == 10. Log in to each of the systems == Determined login information for each hosts at the two InstaGENI aggregates, then logged in to verify IP address assignment. Send traffic to the other system, leave traffic running: {{{ $ readyToLogin.py -a ig-gpo IG-EXP-6-exp1 <...> gpo-ig's geni_status is: ready (am_status:ready) User lnevers logins to gpo-ig using: xterm -e ssh -p 31546 -i /home/lnevers/.ssh/id_rsa lnevers@pc1.instageni.gpolab.bbn.com & $ readyToLogin.py -a ig-utah IG-EXP-6-exp1 <...> utah-ig's geni_status is: ready (am_status:ready) User lnevers logins to utah-ig using: xterm -e ssh -p 31546 -i /home/lnevers/.ssh/id_rsa lnevers@pc1.utah.geniracks.net & }}} XXXX == 11. As Experimenter2, define a request RSpec == As lnevers1, create RSpecs for one VM and one physical node at BBN InstaGENI. First get a listersources from BBN InstaGENI, Utah InstaGENI, and from FOAM at I2 and NLR Site: {{{ $ omni.py listresources -a ig-utah -o # InstaGENI Utah $ omni.py listresources -a ig-of-utah -V1 -o # InstaGENI Utah FOAM $ omni.py listresources -a of-uen -V1 -o # FOAM UEN Regional $ omni.py listresources -a of-nlr -V1 -o # FOAM NLR $ omni.py listresources -a of-indiana -V1 -o # FOAM Indiana $ omni.py listresources -a of-i2 -V1 -o # FOAM Internet2 $ omni.py listresources -a of-gpo -V1 -o # GPO SITE FOAM $ omni.py listresources -a pg-utah -o }}} 12. Define a request RSpec for two VMs on the same experiment node at Utah InstaGENI. 11. Define request RSpecs for !OpenFlow resources from BBN FOAM to access GENI !OpenFlow core resources. 14. Define request RSpecs for !OpenFlow core resources at I2 FOAM. 15. Define request RSpecs for !OpenFlow core resources at NLR FOAM. 16. Create a second slice. 17. Create a sliver in the second slice at each AM, using the RSpecs defined above. 18. Log in to each of the systems in the slice, and send traffic to each other systems; leave traffic running 19. As Experimenter3, request !ListResources from BBN InstaGENI, BBN meso-scale FOAM, and FOAM at Meso-scale Site (Internet2 Site BBN and NLR site is TBD). As user lnevers2@bbn.com get a listersources from BBN InstaGENI, Utah PG, and from FOAM at I2 and NLR Site: {{{ $ omni.py listresources -a pg-utah -o # PG Utah $ omni.py listresources -a ig-of-utah -V1 -o $ omni.py listresources -a of-uen -V1 -o $ omni.py listresources -a of-nlr -V1 -o $ omni.py listresources -a of-indiana -V1 -o $ omni.py listresources -a of-i2 -V1 -o $ omni.py listresources -a of-gpo -V1 -o $ omni.py listresources -a eg-of-gpo -V1 -o $ omni.py listresources -a eg-of-renci -V1 -o $ omni.py listresources -a ig-of-gpo -V1 -o $ omni.py listresources -a pg-utah -o $ omni.py listresources -a ig-utah -o $ omni.py listresources -a ig-gpo -o }}} 20. Review !ListResources output from all AMs. 21. Define a request RSpec for a VM at the BBN InstaGENI. 22. Define a request RSpec for a compute resource at the BBN meso-scale site. 23. Define a request RSpec for a compute resource at a meso-scale site. 24. Define request RSpecs for !OpenFlow resources to allow connection from !OpenFlow BBN InstaGENI to Meso-scale !OpenFlow sites(BBN and second site TBD) (I2 and NLR). 25. If PG access to !OpenFlow is available, define a request RSpec for the PG !OpenFlow resource. 26. Create a third slice. 27. Create slivers that connects the TBD Internet2 Meso-scale !OpenFlow site to the BBN InstaGENI Site, and the BBN Meso-scale site; and if available, to PG node. 28. Log in to each of the compute resources in the slice, configure data plane network interfaces on any non-InstaGENI resources as necessary, and send traffic to each other systems; leave traffic running. 29. Verify that all three experiment continue to run without impacting each other's traffic, and that data is exchanged over the path along which data is supposed to flow. 30. Review baseline monitoring statistics and checks. 31. As site administrator, identify all controllers that the BBN InstaGENI !OpenFlow switch is connected to 32. As Experimenter3, verify that traffic only flows on the network resources assigned to slivers as specified by the controller. 33. Verify that no default controller, switch fail-open behavior, or other resource other than experimenters' controllers, can control how traffic flows on network resources assigned to experimenters' slivers. 34. Set the hard and soft timeout of flowtable entries 35. Get switch statistics and flowtable entries for slivers from the !OpenFlow switch. 36. Get layer 2 topology information about slivers in each slice. 37. Install flows that match only on layer 2 fields, and confirm whether the matching is done in hardware. 38. If supported, install flows that match only on layer 3 fields, and confirm whether the matching is done in hardware. 39. Run test for at least 4 hours. 40. Review monitoring statistics and checks as above. 41. Delete slivers.