...
- Prior to setting up the controller, consider how you are going to connect each switch to it. The control plane needs to be reliable and accessible to both the switches and the controller itself. A common solution is to host the controller on a public IP using a GENI VM. This will work in most all cases – just point each switch to this public controller IP. An alternative is to use port forwarding on a known and accessible public IP to forward all OpenFlow control plane traffic to the real location of the controller.
- The controller, although relatively stable, is still under development. In between SOS runs/trials/tests, it is recommended you restart the controller.
- At present, the controller does not take into account the capabilities of any hardware switch. As such, flow matches and actions might need to be tweaked in order to ensure use of the switch hardware forwarding path. Conveying this information in a dynamic way is a known problem across the board in OpenFlow and still does not have a foolproof solution. OpenFlow 1.3 introduced table features messages, which allows the switch to inform the controller about most of the capabilities and requirements of each of its flow tables. This feature was just recently introduced to Floodlight in late spring 2015 and to OVS around the same time. It has not been extended to SOS yet.
...
Lastly, we have a final block of parameters for configuring the datapath IDs (DPIDs) of the involved switches – the in-network physical switches or OVS's and the in-agent OVS's. The src- and dst-ntwk-switch variables set the DPIDs of the in-network switches, while the src- and dst-agent-switch-dpid variables set the OVS DPIDs in each agent. All four of these allow Floodlight to determine the role of each switch upon connection to the controller. The remaining parameters, src- and dst-ntwk-sw-port are the physical switch or OVS ports that lead into the network core. In an SOS deployment, there is a source LAN, a destination LAN, and a black box network in the middle, which is undefined in so long as it is a (logical) layer 2 network. The switch ports from the source and destination side LANs of the SOS deployment leading into this black box should be used here.
Playing with the Source Code
All source code for SOS can be found in the net.floodlightcontroller.sos Java package. The SOS module is located in net.floodlightcontroller.sos.SOS.java. All other classes in the package are data types defined for use in the SOS module.