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>
