| 227 | OpenFlow 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 | |
| 229 | The 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 | |
| 231 | Note that in these RSpecs, all integers can be specified as hex or decimal. * or missing means wildcard. |
| 232 | |
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. |
| 421 | 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 (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 | |
| 424 | The 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 | }}} |