Gec6Demorspecexample
This is the RSpec used for the ProtoGENI demo at GEC6, which connected a PC in the demo room (acting as an 802.11 access point) with a PC in the Washington DC Internet2 POP at Layer 2.
<!-- RSpec for ProtoGENI backbone demo, GEC6, November 16, 2009 Contains an access point in Utah, a server in the Washington, DC POP, and hops through a series of NetFPGAs in between. --> <rspec type="request" xmlns="http://www.protogeni.net/resources/rspec/0.1"> <!-- Request that this slice last through November 18 --> <valid_until>20091118T22:00:00</valid_until> <!-- AP in the stadium: pcwf141 --> <node component_uuid="urn:publicid:IDN+emulab.net+node+pcwf141" component_manager_uuid="urn:publicid:IDN+emulab.net+authority+cm" virtual_id="ap" virtualization_type="emulab-vnode" exclusive="1"> <node_type type_name="pc" type_slots="1"/> <!-- Note that we declare an interface here; below, we'll reference this interface when we make a LAN --> <interface virtual_id="virt-0"/> </node> <!-- Webserver in DC POP: pg41 --> <node component_uuid="urn:publicid:IDN+emulab.net+node+pg41" component_manager_uuid="urn:publicid:IDN+emulab.net+authority+cm" virtual_id="server" virtualization_type="emulab-vnode" exclusive="1"> <node_type type_name="pcpg-i2" type_slots="1"/> <interface virtual_id="virt-0"/> </node> <!-- Machine in Emulab to send router advertisements, which act as the IPv6 equivalent of DHCP for our purposes. Note that the component_uuid is blank: This lets the component manager select a node for us. --> <node component_manager_uuid="urn:publicid:IDN+emulab.net+authority+cm" virtual_id="nd" virtualization_type="emulab-vnode" exclusive="1"> <node_type type_name="pc" type_slots="1"/> <interface virtual_id="virt-0"/> </node> <!-- netfpga and host in SALT POP --> <node component_uuid="urn:publicid:IDN+emulab.net+node+pg44" component_manager_uuid="urn:publicid:IDN+emulab.net+authority+cm" virtual_id="nfhost-salt" virtualization_type="emulab-vnode" exclusive="1"> <node_type type_name="pc" type_slots="1"/> </node> <node component_uuid="urn:publicid:IDN+emulab.net+node+netfpga18" component_manager_uuid="urn:publicid:IDN+emulab.net+authority+cm" virtual_id="nf-salt" virtualization_type="emulab-vnode" exclusive="1"> <node_type type_name="netfpga2" type_slots="1"/> <!-- Note that the NetFPGA is declared as a 'subnode' of the PC that hosts it. In an advertisement, we use the virtual ID of the host machine --> <subnode_of>nfhost-salt</subnode_of> <interface virtual_id="virt-0"/> <interface virtual_id="virt-1"/> </node> <!-- netfpga and host in KANS POP --> <node component_uuid="urn:publicid:IDN+emulab.net+node+pg42" component_manager_uuid="urn:publicid:IDN+emulab.net+authority+cm" virtual_id="nfhost-kans" virtualization_type="emulab-vnode" exclusive="1"> <node_type type_name="pc" type_slots="1"/> </node> <node component_uuid="urn:publicid:IDN+emulab.net+node+netfpga14" component_manager_uuid="urn:publicid:IDN+emulab.net+authority+cm" virtual_id="nf-kans" virtualization_type="emulab-vnode" exclusive="1"> <node_type type_name="netfpga2" type_slots="1"/> <subnode_of>nfhost-kans</subnode_of> <interface virtual_id="virt-0"/> <interface virtual_id="virt-1"/> </node> <!-- netfpga and host in WASH POP --> <node component_uuid="urn:publicid:IDN+emulab.net+node+pg40" component_manager_uuid="urn:publicid:IDN+emulab.net+authority+cm" virtual_id="nfhost-wash" virtualization_type="emulab-vnode" exclusive="1"> <node_type type_name="pc" type_slots="1"/> </node> <node component_uuid="urn:publicid:IDN+emulab.net+node+netfpga10" component_manager_uuid="urn:publicid:IDN+emulab.net+authority+cm" virtual_id="nf-wash" virtualization_type="emulab-vnode" exclusive="1"> <node_type type_name="netfpga2" type_slots="1"/> <subnode_of>nfhost-wash</subnode_of> <interface virtual_id="virt-0"/> <interface virtual_id="virt-1"/> </node> <!-- LAN containing AP, neighbor discovery server, and the first-hop NetFPGA in the SALT POP --> <link virtual_id="ap-link" link_type="ethernet"> <!-- Note that these are references to interface declared above. A LAN is simply a link that contains more than two interfaces --> <interface_ref virtual_node_id="nd" virtual_interface_id="virt-0"/> <interface_ref virtual_node_id="ap" virtual_interface_id="virt-0"/> <interface_ref virtual_node_id="nf-salt" virtual_interface_id="virt-0"/> <bandwidth>1000000</bandwidth> </link> <!-- Hop from SALT to KANS --> <link virtual_id="salt-kans-link" link_type="ethernet"> <interface_ref virtual_node_id="nf-salt" virtual_interface_id="virt-1"/> <interface_ref virtual_node_id="nf-kans" virtual_interface_id="virt-0"/> <bandwidth>1000000</bandwidth> </link> <!-- Hop from KANS to WASH --> <link virtual_id="kans-wash-link" link_type="ethernet"> <interface_ref virtual_node_id="nf-kans" virtual_interface_id="virt-1"/> <interface_ref virtual_node_id="nf-wash" virtual_interface_id="virt-0"/> <bandwidth>1000000</bandwidth> </link> <!-- Final hop from NetFPGA to server --> <link virtual_id="server-link" link_type="ethernet"> <interface_ref virtual_node_id="nf-wash" virtual_interface_id="virt-1"/> <interface_ref virtual_node_id="server" virtual_interface_id="virt-0"/> <bandwidth>1000000</bandwidth> </link> </rspec>