-
Notifications
You must be signed in to change notification settings - Fork 2
OMNI_client
Home > Experimenting > Testing with OMNI client
This page describes how to test some of the FELIX modules (RO, RMs) using the OMNI client.
OMNI is a command-line interface that is part of the GENI Control Framework. This tool allows reserving resources at GENI aggregate managers.
For OMNI being able to contact a given RM, 1) the GCF (GENI Control Framework) must be installed and properly configured and 2) if you do not have a specific Clearinghouse running in your environment (and thus properly configured in the configuration files needed for the previous step), the GCF Clearinghouse must be running.
Download the latest GENI Control Framework source from the website and configure it carefully.
To configure OMNI, you may follow the instructions in the above GCF website or do as follows:
- Download the configuration files as a compressed file or individually.
- Uncompress in your remote server and place the files under
~/.gcf
(create the folder if it is not there yet). - Modify the content of every line commented with "changeMe" to match the name of your organisation. Respect the format of the URN there.
The following instructions differ on whether you use the CH from GENI or the CBAS CH.
- Instructions for using the CBAS clearinghouse.
- Instructions for using the clearinghouse from GENI.
When calling to a specific RM, the following RSpecs (XML-based data models) can be used as the rspec-req.xml input file for requesting resources (through the Allocate method):
There are several tags to be customised to fit the parameters of the desired RMs:
- node
-
client_id
: Name of the VM to be used (should be unique per island/domain). -
component_id
,component_manager_id
: Correspond to the URNs of the desired virtualisation server and its authority, respectively. - sliver_type: If you use an extended version of the CRM that uses the information contained within this tag, you should request specific examples on the accepted values to use.
-
name
: Type of virtualisation technique. -
emulab:xen
-
cores
,ram
,disk
: Accepted values/configurations for which VMs are provided.
-
-
disk_image
-
name
: URN that defines a specific configuration/flavour/template for the VM.
-
<?xml version="1.0" encoding="UTF-8"?>
<rspec xmlns="http://www.geni.net/resources/rspec/3"
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
xmlns:emulab="http://www.protogeni.net/resources/rspec/ext/emulab/1"
xs:schemaLocation="http://www.geni.net/resources/rspec/3/request.xsd"
type="request">
<node client_id="VerdaguerFELIXTestNo812783" component_id="urn:publicid:IDN+ocf:i2cat:vtam+node+Verdaguer" component_manager_id="urn:publicid:IDN+ocf:i2cat:vtam+authority+cm" exclusive="true">
<sliver_type name="emulab-xen">
<emulab:xen cores="3" ram="1024" disk="10"/>
<disk_image name="urn:publicid:IDN+wall2.ilabt.iminds.be+image+emulab-ops//DEB60_64-VLAN"/>
</sliver_type>
</node>
</rspec>
Several tags here as well to be customised to fit the parameters of the desired RMs:
-
openflow:sliver
-
email
,description
: Use your e-mail and the description of the slice.
-
- openflow:controller
-
url
: Proper URL and port corresponding to your (already existing) controller VM. -
component_id
,component_manager_id
: Correspond to the URNs of the desired virtualisation server and its authority, respectively. - openflow:group
-
name
: Fill with any name, to be used later on in the openflow:match section. - openflow:datapath
-
component_id
,dpid
,component_manager_id
: Correspond to the URNs of the desired datapath/switch, the datapath itself and the datapath authority, respectively. - openflow:port
-
name
,num
: Name and number of each port selected for the flowspace. - openflow:match
-
name
: Use the same as in openflow:group section. - openflow:packet: Select your matching conditions. Find some examples here - however, stick as much as possible to the structure of this sample RSpec.
<rspec xmlns="http://www.geni.net/resources/rspec/3"
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
xmlns:openflow="http://www.geni.net/resources/rspec/ext/openflow/3"
xs:schemaLocation="http://www.geni.net/resources/rspec/3/request.xsd http://www.geni.net/resources/rspec/ext/openflow/3/of-resv.xsd"
type="request">
<openflow:sliver email="[email protected]" description="OF request example">
<openflow:controller url="tcp:10.216.12.134:6633" type="primary"/>
<openflow:group name="fs1">
<openflow:datapath component_id="urn:publicid:IDN+openflow:ocf:i2cat:ofam+datapath+00:10:00:00:00:00:00:01" component_manager_id="urn:publicid:IDN+openflow:ocf:i2cat:ofam+authority+cm" dpid="00:10:00:00:00:00:00:01">
<openflow:port name="GBE0/3" num="3"/>
<openflow:port name="GBE0/12" num="12"/>
</openflow:datapath>
<openflow:datapath component_id="urn:publicid:IDN+openflow:ocf:i2cat:ofam+datapath+00:10:00:00:00:00:00:03" component_manager_id="urn:publicid:IDN+openflow:ocf:i2cat:ofam+authority+cm" dpid="00:10:00:00:00:00:00:03">
<openflow:port name="GBE0/1" num="1"/>
<openflow:port name="GBE0/12" num="12"/>
</openflow:datapath>
</openflow:group>
<openflow:match>
<openflow:use-group name="fs1" />
<openflow:packet>
<openflow:dl_type value="0x801" />
<openflow:nw_dst value="10.1.1.0/24" />
<openflow:nw_proto value="6, 17" />
<openflow:tp_dst value="80, 81" />
<openflow:dl_vlan value="890,900" />
</openflow:packet>
</openflow:match>
</openflow:sliver>
</rspec>
<?xml version="1.1" encoding="UTF-8"?>
<rspec type="request"
xmlns="http://www.geni.net/resources/rspec/3"
xmlns:sharedvlan="http://www.geni.net/resources/rspec/ext/shared-vlan/1"
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
xmlns:felix="http://ict-felix.eu/serm_request"
xs:schemaLocation="http://www.geni.net/resources/rspec/3/request.xsd
http://www.geni.net/resources/rspec/ext/shared-vlan/1/request.xsd">
<node client_id="urn:publicid:IDN+fms:psnc:serm+datapath+00:00:00:00:00:00:00:01"
component_manager_id="urn:publicid:IDN+fms:psnc:serm+authority+cm">
<interface client_id="urn:publicid:IDN+fms:psnc:serm+datapath+00:00:00:00:00:00:00:01_1">
<sharedvlan:link_shared_vlan name="urn:publicid:IDN+fms:psnc:serm+datapath+00:00:00:00:00:00:00:01_1+vlan"
vlantag="1000"/>
</interface>
<interface client_id="urn:publicid:IDN+fms:psnc:serm+datapath+00:00:00:00:00:00:00:01_2">
<sharedvlan:link_shared_vlan name="urn:publicid:IDN+fms:psnc:serm+datapath+00:00:00:00:00:00:00:01_2+vlan"
vlantag="2000"/>
</interface>
<interface client_id="urn:publicid:IDN+fms:psnc:serm+datapath+00:00:00:00:00:00:00:01_1">
<sharedvlan:link_shared_vlan name="urn:publicid:IDN+fms:psnc:serm+datapath+00:00:00:00:00:00:00:01_1+vlan"
vlantag="3100"/>
</interface>
<interface client_id="urn:publicid:IDN+fms:psnc:serm+datapath+00:00:00:00:00:00:00:01_4">
<sharedvlan:link_shared_vlan name="urn:publicid:IDN+fms:psnc:serm+datapath+00:00:00:00:00:00:00:01_4+vlan"
vlantag="4000"/>
</interface>
</node>
<link client_id="urn:publicid:IDN+fms:psnc:serm+datapath+00:00:00:00:00:00:00:01_1_00:00:00:00:00:00:00:01_2">
<component_manager name="urn:publicid:IDN+AIST+authority+serm"/>
<link_type name="urn:felix+vlan_trans"/>
<interface_ref client_id="urn:publicid:IDN+fms:psnc:serm+datapath+00:00:00:00:00:00:00:01_1" felix:vlan="1000"/>
<interface_ref client_id="urn:publicid:IDN+fms:psnc:serm+datapath+00:00:00:00:00:00:00:01_2" felix:vlan="2000"/>
</link>
<link client_id="urn:publicid:IDN+fms:psnc:serm+datapath+00:00:00:00:00:00:00:01_1_00:00:00:00:00:00:00:01_4">
<component_manager name="urn:publicid:IDN+AIST+authority+serm"/>
<link_type name="urn:felix+vlan_trans"/>
<interface_ref client_id="urn:publicid:IDN+fms:psnc:serm+datapath+00:00:00:00:00:00:00:01_1" felix:vlan="3100"/>
<interface_ref client_id="urn:publicid:IDN+fms:psnc:serm+datapath+00:00:00:00:00:00:00:01_4" felix:vlan="4000"/>
</link>
</rspec>
<?xml version="1.1" encoding="UTF-8"?>
<rspec type="request"
xmlns="http://www.geni.net/resources/rspec/3"
xmlns:sharedvlan="http://www.geni.net/resources/rspec/ext/shared-vlan/1"
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
xmlns:stitch="http://hpn.east.isi.edu/rspec/ext/stitch/0.1/"
xs:schemaLocation="http://hpn.east.isi.edu/rspec/ext/stitch/0.1/
http://hpn.east.isi.edu/rspec/ext/stitch/0.1/stitch-schema.xsd
http://www.geni.net/resources/rspec/3/request.xsd
http://www.geni.net/resources/rspec/ext/shared-vlan/1/request.xsd">
<node client_id="urn:publicid:tn-network1:" component_manager_id="urn:publicid:IDN+NSI+authority+tnrm">
<interface client_id="urn:publicid:tn:aist:network1+urn:ogf:network:aist:network1:stp1">
<sharedvlan:link_shared_vlan name="urn:publicid:tn:aist:network1+urn:ogf:network:aist:network1:stp1+vlan" vlantag="1785"/>
</interface>
<interface client_id="urn:publicid:tn:xxx:network1+urn:felix:xxx-stp1"/>
<interface client_id="urn:publicid:tn:yyy:network1+urn:felix:yyy-stp2"/>
<interface client_id="urn:publicid:tn:i2cat:network1+urn:felix:i2cat-stp2">
<sharedvlan:link_shared_vlan name="urn:publicid:tn:i2cat:network1+urn:felix:i2cat-stp2+vlan" vlantag="1785"/>
</interface>
</node>
<link client_id="urn:publicid:tn:network1:link">
<component_manager name="urn:publicid:IDN+NSI+authority+tnrm"/>
<interface_ref client_id="urn:publicid:tn:aist:network1+urn:ogf:network:aist:network1:stp1"/>
<interface_ref client_id="urn:publicid:tn:xxx:network1+urn:felix:xxx-stp1"/>
<interface_ref client_id="urn:publicid:tn:yyy:network1+urn:felix:yyy-stp2"/>
<interface_ref client_id="urn:publicid:tn:i2cat:network1+urn:felix:i2cat-stp2"/>
</link>
</rspec>
In order to send a request to RO, the resources defined in the above RSpecs must be placed (without the xml
and rspec
tags) inside the request RSpec. There are two ways to do this:
Define resources within each domain (computing nodes and SDN flowspaces). Pick the name of the domains that will be connected (virtual links), and the RO will internally determine a suitable path (note: in progress).
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<rspec type="request"
xs:schemaLocation="http://www.geni.net/resources/rspec/3
http://hpn.east.isi.edu/rspec/ext/stitch/0.1/
http://hpn.east.isi.edu/rspec/ext/stitch/0.1/stitch-schema.xsd
http://www.geni.net/resources/rspec/3/request.xsd"
xmlns="http://www.geni.net/resources/rspec/3"
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
xmlns:openflow="http://www.geni.net/resources/rspec/ext/openflow/3"
xmlns:felix="http://ict-felix.eu/serm_request"
xmlns:sharedvlan="http://www.geni.net/resources/rspec/ext/shared-vlan/1"
xmlns:stitch="http://hpn.east.isi.edu/rspec/ext/stitch/0.1/"
xmlns:emulab="http://www.protogeni.net/resources/rspec/ext/emulab/1">
<!-- C @ i2CAT -->
<node client_id="SampleTestVMVerdaguer"
component_id="urn:publicid:IDN+ocf:i2cat:vtam+node+Verdaguer"
component_manager_id="urn:publicid:IDN+ocf:i2cat:vtam+authority+cm"
exclusive="true">
<sliver_type name="emulab-xen">
<emulab:xen cores="1" ram="512" disk="8"/>
<disk_image name="urn:publicid:IDN+wall2.ilabt.iminds.be+image+emulab-ops//DEB60_64-VLAN"/>
</sliver_type>
</node>
<!-- C @ AIST -->
<node client_id="aistkvmDC3"
component_id="urn:publicid:IDN+ocf:aist:vtam+node+dc1-3"
component_manager_id="urn:publicid:IDN+ocf:aist:vtam+authority+cm"
exclusive="true">
<sliver_type name="emulab-xen">
<emulab:xen cores="1" ram="512" disk="10"/>
<disk_image name="urn:publicid:IDN+wall2.ilabt.iminds.be+image+emulab-ops//DEB60_64-VLAN"/>
</sliver_type>
</node>
<!-- SDN @ i2CAT -->
<openflow:sliver email="user@mail" description="OF-request for i2CAT island">
<openflow:controller url="tcp:x.y.z.w:6633" type="primary"/>
<openflow:group name="i2CAT">
<openflow:datapath component_id="urn:publicid:IDN+openflow:ocf:i2cat:ofam+datapath+00:10:00:00:00:00:00:01"
component_manager_id="urn:publicid:IDN+openflow:ocf:i2cat:ofam+authority+cm"
dpid="00:10:00:00:00:00:00:01">
<openflow:port name="GBE0/6" num="6"/>
<openflow:port name="GBE0/12" num="12"/>
</openflow:datapath>
</openflow:group>
<openflow:match>
<openflow:use-group name="i2CAT"/>
<openflow:packet>
<openflow:dl_vlan value="2978" />
</openflow:packet>
</openflow:match>
</openflow:sliver>
<!-- SDN @ AIST -->
<openflow:sliver email="user@mail" description="OF-request for AIST island">
<openflow:controller url="tcp:x.y.z.w:6633" type="primary"/>
<openflow:group name="AIST">
<openflow:datapath component_id="urn:publicid:IDN+openflow:ocf:aist:ofam+datapath+00:00:00:00:00:00:00:01"
component_manager_id="urn:publicid:IDN+openflow:ocf:aist:ofam+authority+cm"
dpid="00:00:00:00:00:00:00:01">
<openflow:port num="3" name="eth14"/>
<openflow:port num="5" name="eth3"/>
</openflow:datapath>
</openflow:group>
<openflow:match>
<openflow:use-group name="AIST"/>
<openflow:packet>
<openflow:dl_vlan value="1780" />
</openflow:packet>
</openflow:match>
</openflow:sliver>
<!-- Virtual link - GRE [ i2CAT - AIST ] -->
<link client_id="urn:publicid:IDN+fms:i2cat:mapper+link+i2cat_aist">
<component_manager name="urn:publicid:IDN+fms:i2cat:mapper+authority+cm"/>
<link_type name="urn:felix+virtual_link+type+gre"/>
<interface_ref client_id="urn:publicid:IDN+fms:i2cat:mapper+domain+i2cat"/>
<interface_ref client_id="urn:publicid:IDN+fms:i2cat:mapper+domain+aist"/>
</link>
</rspec>
Define all the resources within the domain (computing nodes and SDN flowspaces), as well as the transit network resources (STPs) and, optionally, also the low-level interconnection between transit network domains (stitching).
<?xml version="1.0" encoding="UTF-8"?>
<rspec xmlns="http://www.geni.net/resources/rspec/3"
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
xmlns:openflow="http://www.geni.net/resources/rspec/ext/openflow/3"
xmlns:sharedvlan="http://www.geni.net/resources/rspec/ext/shared-vlan/1"
xmlns:stitch="http://hpn.east.isi.edu/rspec/ext/stitch/0.1/"
xs:schemaLocation="http://hpn.east.isi.edu/rspec/ext/stitch/0.1/
http://hpn.east.isi.edu/rspec/ext/stitch/0.1/stitch-schema.xsd
http://www.geni.net/resources/rspec/3/request.xsd
http://www.geni.net/resources/rspec/ext/shared-vlan/1/request.xsd
http://www.geni.net/resources/rspec/ext/openflow/3/of-resv.xsd"
type="request">
... PLACE CRM, SDNRM, TNRM [and optionally SERM] resources here ...
</rspec>
- General info
- Administering
- Contributing
- Experimenting