1. Download SPRING-OPEN VM here <LINK>
  2. Setup the VM working environment. Please refer to here to install the VirtualBox and import the SPRING-OPEN VM.
  3. Login the VM using the following username and password

    username : mininet
    password : mininet
  4. Run the SPRING-OPEN controller

    mininet@mininet-vm:~$ cd spring-open
    mininet@mininet-vm:~/spring-open$ ./onos.sh start
    Starting ZooKeeper ... ls: cannot access /home/mininet/spring-open/onos-logs/zk.mininet-vm.log*: No such file or directory
    JMX enabled by default
    Using config: /home/mininet/spring-open/conf/zoo.cfg
    Starting zookeeper ... STARTED
    Starting ONOS controller ...  STARTED

    You can check it the controller is running correctly as following

    mininet@mininet-vm:~/spring-open$ ./onos.sh status
    [ZooKeeper]
    JMX enabled by default
    Using config: /home/mininet/spring-open/conf/zoo.cfg
    Mode: standalone
    [RAMCloud coordinator]
    0 RAMCloud coordinator running
    [RAMCloud server]
    0 RAMCloud server running
    [ONOS core]
    1 instance of onos running
  5. Run the CLI

     mininet@mininet-vm:~$ cd spring-open-cli/
    mininet@mininet-vm:~/spring-open-cli$ source ./workspace/ve/bin/activate
    (ve)mininet@mininet-vm:~/spring-open-cli$ sudo make start-sdncon
    if ! lsof -iTCP:8000 -sTCP:LISTEN >/dev/null; then \
    	( \
    	  cd /home/mininet/spring-open-cli/sdncon; \
    	  [ -d /home/mininet/spring-open-cli/workspace/ve/cassandra/data/sdncon ] || python manage.py syncdb --noinput; \
    	  /home/mininet/spring-open-cli/build/start-and-wait-for-port.sh -p 8000 -l /home/mininet/spring-open-cli/workspace/ve/log/sdncon.log python manage.py runserver 0.0.0.0:8000; \
    	); \
    	fi
    Creating tables ...
    Installing custom SQL ...
    Installing indexes ...
    No fixtures found.
    Launching python manage.py runserver 0.0.0.0:8000 (log: /home/mininet/spring-open-cli/workspace/ve/log/sdncon.log)
    Waiting for port 8000.... OK
    +++ sdncon running
    (ve)mininet@mininet-vm:~/spring-open-cli$ cd cli/
    (ve)mininet@mininet-vm:~/spring-open-cli/cli$ ./cli.py 
    version200
    default controller: 127.0.0.1:8000, SDN OS 1.0 - custom version
    mininet-vm> 



  6. Run the mininet (Probably, you might want to open another terminal to run the mininet)

    mininet@mininet-vm:~$ cd mininet/
    mininet@mininet-vm:~/mininet$ cd custom/
    mininet@mininet-vm:~/mininet/custom$ sudo ./testEcmp_10sw.py 
    *** Creating network
    *** Adding controller
    *** Adding hosts:
    h1 h2 h3 h4 
    *** Adding switches:
    s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 
    *** Adding links:
    (h1, s1) (h2, s6) (h3, s7) (h4, s10) (s1, s2) (s1, s3) (s2, s3) (s2, s5) (s2, s8) (s2, s9) (s3, s4) (s4, s5) (s4, s6) (s5, s6) (s5, s8) (s5, s9) (s7, s8) (s7, s9) (s8, s9) (s8, s10) (s9, s10) 
    *** Configuring hosts
    h1 h2 h3 h4 
    *** Starting controller
    *** Starting 10 switches
    s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 
    *** Starting CLI:
    mininet> 
  7. Check if all the switches are connected to SPRING-OPEN controller using CLI.

    mininet-vm> sh switch 
    #  Switch DPID             Alias        Connected Since              Connected At    Type   Controller
    --|-----------------------|------------|----------------------------|---------------|------|----------
    1  00:00:00:00:00:00:00:01 SFO-ER1      Thu Dec 04 16:45:05 PST 2014 127.0.0.1:60315 packet mininet-vm
    2  00:00:00:00:00:00:00:02 SFO-CR2      Thu Dec 04 16:45:03 PST 2014 127.0.0.1:60311 packet mininet-vm
    3  00:00:00:00:00:00:00:03 SFO-CR3      Thu Dec 04 16:45:05 PST 2014 127.0.0.1:60319 packet mininet-vm
    4  00:00:00:00:00:00:00:04 Dallas-CR4   Thu Dec 04 16:45:05 PST 2014 127.0.0.1:60313 packet mininet-vm
    5  00:00:00:00:00:00:00:05 Dallas-CR5   Thu Dec 04 16:45:05 PST 2014 127.0.0.1:60320 packet mininet-vm
    6  00:00:00:00:00:00:00:06 Dallas-ER6   Thu Dec 04 16:45:05 PST 2014 127.0.0.1:60314 packet mininet-vm
    7  00:00:00:00:00:00:00:07 NewYork-ER7  Thu Dec 04 16:45:05 PST 2014 127.0.0.1:60316 packet mininet-vm
    8  00:00:00:00:00:00:00:08 NewYork-CR8  Thu Dec 04 16:45:05 PST 2014 127.0.0.1:60312 packet mininet-vm
    9  00:00:00:00:00:00:00:09 NewYork-CR9  Thu Dec 04 16:45:05 PST 2014 127.0.0.1:60317 packet mininet-vm
    10 00:00:00:00:00:00:00:0a NewYork-ER10 Thu Dec 04 16:45:05 PST 2014 127.0.0.1:60318 packet mininet-vm
    mininet-vm> sh link 
    #  Src Switch DPID                        Src Port Dst Switch DPID                        Dst Port Type
    --|--------------------------------------|--------|--------------------------------------|--------|------
    1  00:00:00:00:00:00:00:01 (SFO-ER1)      3        00:00:00:00:00:00:00:03 (SFO-CR3)      1        packet
    2  00:00:00:00:00:00:00:01 (SFO-ER1)      4        00:00:00:00:00:00:00:03 (SFO-CR3)      4        packet
    3  00:00:00:00:00:00:00:02 (SFO-CR2)      1        00:00:00:00:00:00:00:01 (SFO-ER1)      2        packet
    4  00:00:00:00:00:00:00:02 (SFO-CR2)      3        00:00:00:00:00:00:00:05 (Dallas-CR5)   1        packet
    5  00:00:00:00:00:00:00:02 (SFO-CR2)      4        00:00:00:00:00:00:00:09 (NewYork-CR9)  3        packet
    6  00:00:00:00:00:00:00:02 (SFO-CR2)      5        00:00:00:00:00:00:00:08 (NewYork-CR8)  3        packet
    7  00:00:00:00:00:00:00:02 (SFO-CR2)      6        00:00:00:00:00:00:00:08 (NewYork-CR8)  6        packet
    8  00:00:00:00:00:00:00:03 (SFO-CR3)      2        00:00:00:00:00:00:00:02 (SFO-CR2)      2        packet
    9  00:00:00:00:00:00:00:03 (SFO-CR3)      3        00:00:00:00:00:00:00:04 (Dallas-CR4)   1        packet
    10 00:00:00:00:00:00:00:04 (Dallas-CR4)   2        00:00:00:00:00:00:00:05 (Dallas-CR5)   2        packet
    11 00:00:00:00:00:00:00:05 (Dallas-CR5)   4        00:00:00:00:00:00:00:08 (NewYork-CR8)  4        packet
    12 00:00:00:00:00:00:00:05 (Dallas-CR5)   5        00:00:00:00:00:00:00:09 (NewYork-CR9)  5        packet
    13 00:00:00:00:00:00:00:06 (Dallas-ER6)   2        00:00:00:00:00:00:00:04 (Dallas-CR4)   3        packet
    14 00:00:00:00:00:00:00:06 (Dallas-ER6)   3        00:00:00:00:00:00:00:05 (Dallas-CR5)   3        packet
    15 00:00:00:00:00:00:00:08 (NewYork-CR8)  1        00:00:00:00:00:00:00:07 (NewYork-ER7)  2        packet
    16 00:00:00:00:00:00:00:08 (NewYork-CR8)  2        00:00:00:00:00:00:00:09 (NewYork-CR9)  1        packet
    17 00:00:00:00:00:00:00:08 (NewYork-CR8)  5        00:00:00:00:00:00:00:0a (NewYork-ER10) 3        packet
    18 00:00:00:00:00:00:00:09 (NewYork-CR9)  4        00:00:00:00:00:00:00:07 (NewYork-ER7)  3        packet
    19 00:00:00:00:00:00:00:0a (NewYork-ER10) 2        00:00:00:00:00:00:00:09 (NewYork-CR9)  2        packet
  8. Test connections in mininet

    mininet> pingall
    *** Ping: testing ping reachability
    h1 -> h2 h3 h4 
    h2 -> h1 h3 h4 
    h3 -> h1 h2 h4 
    h4 -> h1 h2 h3 
    *** Results: 0% dropped (12/12 received)