35 | | TODO |
| 37 | Once you have the environment setup, the next step is installing features via Karaf: |
| 38 | |
| 39 | For a basic learning switch capable controller (built for working with open-Vswitch) we will need to install ODL features to "talk" to switches. '''Note:''' No features come installed by default. To install the features needed follow these steps: |
| 40 | |
| 41 | 1. Start the karaf shell |
| 42 | {{{ |
| 43 | /UNTARPATH/distribution-karaf-0.2.3-Helium-SR3/bin/karaf |
| 44 | }}} |
| 45 | 2. Install the following features in the listed orderd |
| 46 | {{{ |
| 47 | feature:install odl-base-all odl-aaa-authn odl-restconf odl-adsal-northbound odl-mdsal-apidocs odl-l2switch-switch |
| 48 | feature:install odl-ovsdb-northbound |
| 49 | }}} |
| 50 | 3. Exit the karaf shell via ctrl-C |
| 51 | 4. Start the controller instance via the startup script |
| 52 | {{{ |
| 53 | /UNTARPATH/distribution-karaf-0.2.3-Helium-SR3/bin/start |
| 54 | }}} |
| 55 | |
| 56 | This will start the ODL controller. You can verify it's running by looking for |
| 57 | the java process: |
| 58 | {{{ |
| 59 | root@node1-1:~# ps -ef | grep karaf |
| 60 | |
| 61 | root 3188 1 33 16:11 pts/0 00:04:26 /usr/lib/jvm/java-1.7.0-openjdk-amd64/bin/java -server -Xms128M -Xmx2048m -XX:+UnlockDiagnosticVMOptions -XX:+UnsyncloadClass -XX:MaxPermSize=512m -Dcom.sun.management.jmxremote -Djava.endorsed.dirs=/usr/lib/jvm/java-1.7.0-openjdk-amd64/jre/lib/endorsed:/usr/lib/jvm/java-1.7.0-openjdk-amd64/lib/endorsed:/root/distribution-karaf-0.2.3-Helium-SR3/lib/endorsed -Djava.ext.dirs=/usr/lib/jvm/java-1.7.0-openjdk-amd64/jre/lib/ext:/usr/lib/jvm/java-1.7.0-openjdk-amd64/lib/ext:/root/distribution-karaf-0.2.3-Helium-SR3/lib/ext -Dkaraf.instances=/root/distribution-karaf-0.2.3-Helium-SR3/instances -Dkaraf.home=/root/distribution-karaf-0.2.3-Helium-SR3 -Dkaraf.base=/root/distribution-karaf-0.2.3-Helium-SR3 -Dkaraf.data=/root/distribution-karaf-0.2.3-Helium-SR3/data -Dkaraf.etc=/root/distribution-karaf-0.2.3-Helium-SR3/etc -Djava.io.tmpdir=/root/distribution-karaf-0.2.3-Helium-SR3/data/tmp -Djava.util.logging.config.file=/root/distribution-karaf-0.2.3-Helium-SR3/etc/java.util.logging.properties -Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true -classpath /root/distribution-karaf-0.2.3-Helium-SR3/lib/karaf-jaas-boot.jar:/root/distribution-kara -0.2.3-Helium-SR3/lib/karaf-jmx-boot.jar:/root/distribution-karaf-0.2.3-Helium-SR3/lib/karaf-org.osgi.core.jar:/root/distribution-karaf-0.2.3-Helium-SR3/lib/karaf.branding-1.0.3-Helium-SR3.jar:/root/distribution-karaf-0.2.3-Helium-SR3/lib/karaf.jar org.apache.karaf.main.Main |
| 62 | }}} |
| 63 | If properly running you should see this PID listening on port 6633 as well as several others. |
| 64 | {{{ |
| 65 | root@node1-1:~# netstat -tnlup | grep 3188 |
| 66 | tcp6 0 0 :::8101 :::* LISTEN 3188/java |
| 67 | tcp6 0 0 :::6633 :::* LISTEN 3188/java |
| 68 | tcp6 0 0 :::1099 :::* LISTEN 3188/java |
| 69 | tcp6 0 0 127.0.0.1:57453 :::* LISTEN 3188/java |
| 70 | tcp6 0 0 :::6640 :::* LISTEN 3188/java |
| 71 | tcp6 0 0 :::8080 :::* LISTEN 3188/java |
| 72 | tcp6 0 0 127.0.0.1:50353 :::* LISTEN 3188/java |
| 73 | tcp6 0 0 127.0.0.1:40659 :::* LISTEN 3188/java |
| 74 | tcp6 0 0 :::8181 :::* LISTEN 3188/java |
| 75 | tcp6 0 0 :::56886 :::* LISTEN 3188/java |
| 76 | tcp6 0 0 127.0.0.1:7800 :::* LISTEN 3188/java |
| 77 | tcp6 0 0 127.0.0.1:54936 :::* LISTEN 3188/java |
| 78 | tcp6 0 0 :::8185 :::* LISTEN 3188/java |
| 79 | tcp6 0 0 :::44444 :::* LISTEN 3188/java |
| 80 | tcp6 0 0 :::6653 :::* LISTEN 3188/java |
| 81 | tcp6 0 0 :::12001 :::* LISTEN 3188/java |
| 82 | udp6 0 0 :::7500 :::* 3188/java |
| 83 | }}} |
| 84 | |
| 85 | At this point switches should be able to connect to this controller for control messages using the default control port '''6633'''. (e.g. using mininet: mn --controller=remote,ip=CTRLIP). In ''/UNTARPATH/distribution-karaf-0.2.3-Helium-SR3/bin'' are additional control scripts for stopping the server and setting environment variables. |