[[PageOutline]] = GENI layer1transport service usage = == Introduction == This page describes how to use the layer1transport service. == Variables == || '''Name''' || '''Description''' || '''Default Values''' || || || REST API port for FL || 18080 || || || Name of flow according to SFP || || == Using the Service == The following is a brief description of how the service can be used. === Common Work flows === There are limitations to what this service can do at the moment, so below I will list some steps to take for various work flows. ==== Adding a new flow ==== When adding a new connection in that needs a new flow defined in the switch: 1. Define the flows and put them into a new file under `/home/openflow/floodlight/flows.d/` 2. Run {{{ service layer1transport reload }}} This should push the new flows without disrupting connectivity for other existing connections. ==== Removing a flow ==== When removing a connection that relies on a specific flow: 1. Determine which flows should be removed and collect the names of the flows 2. For each flow that should be removed, run {{{ /home/openflow/floodlight/apps/layer1transport delete -n -p }}} This should remove flows by name without disrupting connectivity for other existing connections. ==== Updating an existing flow ==== If you need to update a flow that has already been defined and pushed: 1. Update the flows file to use the new flow information 2. Remove the old flow by running {{{ /home/openflow/floodlight/apps/layer1transport delete -n -p }}} 3. Run: {{{ service layer1transport reload }}} ==== Restoring Static Flow Pusher (SFP) to a known state ==== If you believe that SFP may be out of sync with the desired state, but your are unsure what the specific problem is, then the best option may be to restart the service with: {{{ service layer1transport restart }}} This will briefly remove and reinstall all static flows, so this is disruptive to connectivity managed by this service. ==== Listing the flows that SFP knows about ==== To list which flows SFP knows about, the most up-to-date information can be found in [http://docs.projectfloodlight.org/display/floodlightcontroller/Static+Flow+Pusher+API+%28New%29 the SFP documentation]. ==== Listing the flows that a switch knows about ==== To list which flows that a given switch knows about, the most up-to-date information can be found in [http://docs.projectfloodlight.org/display/floodlightcontroller/Floodlight+REST+API the REST API documentation] under the command for querying for flow statistics. === Defined Service Commands === ==== start ==== The following command will cause the floodlight controller to start and it will push the flows that exist in the flows files. {{{ service layer1transport start }}} ==== stop ==== The following command will cause the flows that are defined in the flows files to be explicitly removed, and it will cause the floodlight controller to stop. Floodlight's SFP module will not preserve flows when floodlight is shut down, so any remaining flows (whether they are inserted through other means, or if they are stale for some reason) will be removed. {{{ service layer1transport stop }}} ==== reload ==== The following command will cause the floodlight module to read in the flows files, and add any flows which have names that are unknown to the floodlight SFP service. Note that this '''will not''' remove flows that are removed from files, it '''will not''' remove flows if a file has been removed, and it '''will not''' update flows with a name that SFP already knows about. {{{ service layer1transport reload }}} ==== restart ==== The following command will stop, pause, and then start the layer1transport service. {{{ service layer1trasport restart }}} ==== status ==== The following command will return a non-zero value if floodlight is not running, or if there are some flows defined in `/home/openflow/floodlight/flows.d/` which the floodlight controller's SFP module doesn't know about. It will return zero otherwise. {{{ service layer1transport status }}}