Changes between Version 12 and Version 13 of Omni


Ignore:
Timestamp:
09/15/10 08:59:20 (9 years ago)
Author:
Aaron Helsinger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Omni

    v12 v13  
    225225=== OpenFlow ===
    226226
     227OpenFlow native RSpecs are different formats for advertisements and reservations. The Omni omnispec is an intermediate format - Omni will convert between the two formats for you, allowing you to edit the omnispec directly.
     228
     229The native advertisement RSpecs describe a network in terms of switches and links. To reserve flowspace you you will need to define a slice (needs a name and controller URL), a project (named), a user for logging in to FlowVisor, and then one or more flowspace entries (flowvisor rules). The flowspace needs the switches it applies to, and then the ports, dl, vlnan, nw, etc specs for what it should match. Everything in your reservation RSpec will go to the slice / controller you have specified.
     230
     231Note that in these RSpecs, all integers can be specified as hex or decimal. * or missing means wildcard.
     232
    227233A native OpenFlow advertisement RSpec looks like this:
    228234{{{
     
    280286}}}
    281287
    282 This gets converted by Omni (when you call listresources) into an omnispec that looks like this:
     288This advertisement RSpec gets converted by Omni (when you call listresources) into an omnispec. The omnispec can be edited directly, and Omni will convert that into the appropriate reservation RSpec. The OpenFlow omnispec looks like this:
    283289
    284290{{{
     
    413419}}}
    414420
    415 To allocate, simply set "allocate" to true for each switch that you want to allocate, and fill in the flowspace options for the flowspace on that switch.  Next, fill in 'sliceinfo' section with your name, password, etc and pass the omnispec in for the omni createsliver call.
     421To allocate, simply set "allocate" to true for each switch that you want to allocate, and fill in the flowspace options for the flowspace on that switch (nw/dl/tp/vlan specifying the matching rules you want for your flowspace entry).  Next, fill in 'sliceinfo' section with your name, password, controller URL, etc and pass the omnispec in for the omni createsliver call.
     422
     423
     424The native OpenFlow reservation RSpec looks like this:
     425{{{
     426    <resv_rspec>
     427        <user
     428            firstname="John"
     429            lastname="Doe"
     430            email="john.doe@geni.net"
     431            password="slice_pass"
     432        />
     433        <project
     434            name="Stanford Networking Group"
     435            description="Internet performance research to ..."
     436        />
     437        <slice
     438            name="Crazy Load Balancer"
     439            description="Does this and that..."
     440            controller_url="tcp:controller.stanford.edu:6633"
     441        />
     442        <flowspace>
     443            <switches>
     444                <switch urn="urn:publicid:IDN+openflow:stanford+switch:0">
     445                <switch urn="urn:publicid:IDN+openflow:stanford+switch:2">
     446            </switches>
     447            <port from="1" to="4" />
     448            <dl_src from="22:33:44:55:66:77" to="22:33:44:55:66:77" />
     449            <dl_dst from="*" to="*" />
     450            <dl_type from="0x800" to="0x800" />
     451            <vlan_id from="15" to="20" />
     452            <nw_src from="192.168.3.0" to="192.168.3.255" />
     453            <nw_dst from="192.168.3.0" to="192.168.3.255" />
     454            <nw_proto from="17" to="17" />
     455            <tp_src from="100" to="100" />
     456            <tp_dst from="100" to="*" />
     457        </flowspace>
     458        <flowspace>
     459            <switches>
     460                <switch urn="urn:publicid:IDN+openflow:stanford+switch:1">
     461            </switches>
     462            <tp_src from="100" to="100" />
     463            <tp_dst from="100" to="*" />
     464        </flowspace>
     465    </resv_rspec>
     466}}}