SCL composes of SCL-agent running at each switch and SCL-proxy running at each single-image controller like POX.
SCL-agent: copy conf/ lib/ log/ and scl_agent.py to the destination environment.
./scl_agent.py <id> udpSCL-proxy: copy conf/ lib/ log and scl_proxy.py to the destination environment.
./scl_proxy.py <id> udpController: two applications, shortest path routing and traffic engineering, are implemented on top of POX. To avoid POX flushes the flow entries on switches, comment the following codes.
# file: pox/pox/openflow/of_01.py
148 # if con.ofnexus.clear_flows_on_connect:
149 # con.send(of.ofp_flow_mod(match=of.ofp_match(), command=of.OFPFC_DELETE))Configuration: IP addresses of SCL-agents and SCL-proxies are specified in conf/net.cfg. Change these addresses according to the local network configuration. Default UDP broadcast address and controller listening address are specified in conf/const.py. To run the POX application, a topology configuration file in needed, or enable LLDP module instead.
Addtion: some scripts in cloudlab directory for configuring and running SCL remotely and a shortest path routing application implemented on top of ONOS in onos directory.
SCL can be tested in Mininet with a Fat-tree inbound/outband topology locally. Install Mininet and download POX into pox/ directory first.
cd mininet && sudo ./run.py udp fattree_inband shortest