| | 68 | 2. ''start flowvisor.'' Unlike nox, there are no flags to throw it into the background. Here it is started on port 6655: |
| | 69 | {{{ |
| | 70 | flowvisor config.xml 6655 & |
| | 71 | }}} |
| | 72 | |
| | 73 | 3. ''delete sample slices.'' After inspecting them with ''getSliceInfo'', remove them with ''deleteSlice''. There are two slices, "alice" and "bob". |
| | 74 | {{{ |
| | 75 | fvctl getSliceInfo alice |
| | 76 | fvctl deleteSlice alice |
| | 77 | fvctl getSliceInfo bob |
| | 78 | fvctl deleteSlice bob |
| | 79 | }}} |
| | 80 | |
| | 81 | 4. ''create your slice.'' This is done via ''createSlice''. The syntax goes roughly like this: |
| | 82 | {{{ |
| | 83 | fvctl createSlice <slice name> tcp:<controller's ip>:<controller's port> <your email> |
| | 84 | }}} |
| | 85 | |
| | 86 | So for our example, we have a slice "nox-test," which expects a controller with ip 172.16.0.4 living on port 6656: |
| | 87 | {{{ |
| | 88 | fvctl createSlice nox-test tcp:172.16.0.4:6656 foo@sampledomain.com |
| | 89 | }}} |
| | 90 | |
| | 91 | 5. ''create your flowspace.'' Flowspaces define the policy for your slices. Many parameters can be tacked onto ''addFlowSpace''. First, the syntax: |
| | 92 | {{{ |
| | 93 | fvctl addFlowSpace all <priority number> <policy> "Slice:<slice name>=<permissions>" |
| | 94 | }}} |
| | 95 | |
| | 96 | * priority - a number between 0 and 2^31^. Higher value = higher priority |
| | 97 | * policy - flow matching policies. Details are under '''FLOW SYNTAX''' in the fvctl(1) man pages. |
| | 98 | * slice name - the name of your slice. |
| | 99 | * permissions - similar to ''chmod'', with delegate=1, read=2, write=4. |
| | 100 | |
| | 101 | What we want is very minimal: allow all for the controller of the slice: |
| | 102 | {{{ |
| | 103 | fvctl addFlowSpace all 1000 any "Slice:nox-test=7" |
| | 104 | }}} |
| | 105 | |
| | 106 | 6. ''start the controller.'' Start nox on the IP:port combination defined for the controller in the flowvisor slice: |
| | 107 | {{{ |
| | 108 | ./nox_core -i ptcp:6656 switch packetdump -d |
| | 109 | }}} |
| | 110 | |
| | 111 | 7. ''start virtual switch.'' Here we instantiate an IP8800 switch with a virtual switch listening to flowvisor, which is 172.16.0.4: |
| | 112 | {{{ |
| | 113 | setvsi 22 37,38 tcp 172.16.0.4:6655 dpid 0x001010223232 |
| | 114 | }}} |
| | 115 | The datapath should come up as "connected" under ''showswitch''. |