Changes between Version 5 and Version 6 of Internal/OpenFlow/Controllers/FlowVisor


Ignore:
Timestamp:
Sep 15, 2010, 7:37:12 PM (14 years ago)
Author:
akoshibe
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Internal/OpenFlow/Controllers/FlowVisor

    v5 v6  
    5757
    5858== configuration ==
    59 the primary means of configuring flowvisor is via ''fvctl''. 
     59the primary means of configuring flowvisor is via ''fvctl''.Unlike older versions of nox, you don't need to create configuration scripts, which is great. Here, we'll describe how to use ''fvctl'' through an example run based on the flowvisor webpage.  
    6060
     61=== A testrun setup ===
     62 1. ''set up config file.'' Basing it on the default-config.xml file that comes with the flowvisor install:
     63{{{
     64cp default-config.xml config.xml
     65config-gen-default config.xml (Input: root passwd)
     66}}}
    6167
     68 2. ''start flowvisor.'' Unlike nox, there are no flags to throw it into the background. Here it is started on port 6655: 
     69{{{
     70flowvisor 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{{{
     75fvctl getSliceInfo alice
     76fvctl deleteSlice alice
     77fvctl getSliceInfo bob
     78fvctl deleteSlice bob
     79}}}
     80
     81 4. ''create your slice.'' This is done via ''createSlice''. The syntax goes roughly like this:
     82{{{
     83fvctl 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{{{
     88fvctl 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{{{
     93fvctl 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{{{
     103fvctl 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{{{
     113setvsi 22 37,38 tcp 172.16.0.4:6655 dpid 0x001010223232
     114}}}
     115The datapath should come up as "connected" under ''showswitch''.