This is a multi-module Opendaylight example, performing some simple operations with the SDN Controller.
It exposes an API to add applications, uses the registry to store them, configures flow rules, and does link monitoring and topology functions, and topology change listener, using separate modules and different types of bundles and interfaces.
To build the project, you have to setup Java and Maven first, according to the instructions.
##Build & Run
mvn clean install -DskipTests
cd karaf/target/assembly/bin
./karaf
To check that our modules are running, use the following commands in the Opendaylight console:
bundle:list | grep 1.0.0.SNAPSHOT
(All project bundles should be active)
##Basic Example Start the Opendaylight with the previous commands.
Install Mininet and run a simple topology, e.g. 1 switch, 2 hosts, by executing sudo mn --controller remote,ip="sdn-controller-ip" --topo single, 2
Browse the ODL user interface and connect with admin/admin credentials.
Browse the Yang UI page, expand all in API tab and find reference and negotiator APIs.
In the Mininet console, execute pingall
. Then in the Opendaylight console, execute log:display | grep eu.virtuwind
and you should see the topology change notification update.
In reference bullet, add an application. Then in operational bullet, check whether it has been stored in the registry.
In negotiator bullet, send the negotiation requirements. In the same page, you will also receive a response.
In the Opendaylight console, execute log:display
to check that certain functions work properly when you use the REST API.
In the Mininet console, execute sh ovs-ofctl dump-flows s1
to check that a new flow rule is inserted.