Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Opendaylight app development
1.
2.
3.
4. Brain child of clean slate initiative.. from
Stanford.. and active contributions from UC
Berekley.
The current network architecture closed for
innovation.
SDN is all about abstraction.
Control Plane and Data Plane completely
abstracted.
Control Plane now runs in a central location and
programs the forwarding elements.
OpenFlow is used to program the Forwarding
Elements – rules to handle incoming traffic.
5. H E A D E R F I E L D S A C T I O N S C O U N T E R S
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
Ingress
port
Source
MAC
Dest
MAC
Ether
Type
VLAN
ID
VLAN
priority
IP
SRC
IP
DEST
IP
Protocol
IP
TOS
TCP/UDP
SRC
TCP/UDP
DEST
1 2 3 4 5 6 7 8 9 10 11 12
H E A D E R F I E L D S1 2 T u p l e k e y
6. H E A D E R F I E L D S A C T I O N S C O U N T E R S
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
ACTIONSActions To be performed upon a match
Forward out all ports except input ports (flood)
Forward to group of ports (multicast)
Redirect to Controller (controller packet)
Forward to local CPU (punt path)
Forward to destination port (unicast routing)
Drop packet (limited queueing QOS
capabilities)
7. H E A D E R F I E L D S A C T I O N S C O U N T E R S
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
COUNTERSCounters – To keep track of stats
Forward out all ports except input ports (flood)
PerTable counters (active entries, packet lookups,
packet matches)
Per Flow Counters ( Received packets, Received Bytes,
Duration of the flow)
Per Queue (Transmit packets,Transmit Bytes ,TX
Overrun Errors)
Per Port Counters ( Received Packets,Transmit Packets,
Received Bytes,Transmit Bytes, Received Drops…...
8. Network Virtualization
Layer
N e twork O S / S D N C ontroller
APP APP APP APP
Data Path
Forwarding Table Data Path
Forwarding Table
Data Path
Forwarding Table
North Bound
APIs
North Bound
APIs
N o r t h B o u n d A P I s
ANDROID
OS
APPs
Mobile Phone
Hardware
9.
10. Its an architectural style, based on the current
architecture ofWorldWideWeb, with certain
constraints.
Every resource in the web is identified by an
URI.
Use traditional HTTP methods GET,
PUT,POST.
Resource state represented in JSON or XML
format.
https://apigee.com/console/facebook
11. human-readable text to transmit data objects consisting of
attribute–value pairs.
{"employees":[
{"firstName":"John", "lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter", "lastName":"Jones"}
]}
<employees>
<employee>
<firstName>John</firstName> <lastName>Doe</lastName>
</employee>
<employee>
<firstName>Anna</firstName> <lastName>Smith</lastName>
</employee>
<employee>
<firstName>Peter</firstName> <lastName>Jones</lastName>
</employee>
</employees>
12. Java Setup
apt-get install git
apt-get install openjdk-7-jre
apt-get install openjdk-7-jdk
apt-get install maven
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-i386/
Mininet - Network, host virtualization software.
git clone git://github.com/mininet/mininet
mininet/util/install.sh –a
Eclipse setup - https://www.eclipse.org/downloads/
From Eclipse, go to Help => Install New Software...
Paste "http://download.eclipse.org/technology/m2e/releases" into the "Work with:" field
Select m2e and (optionally) m2e - slf4j both (1.4.0 is current as of the writing of these instructions)
Click Next, OK and Finish else until things install
Restart Eclipse when it asks.
13. https://wiki.opendaylight.org/view/OpenDaylight_Controller:Pulling,_Hacking,_and_Pushing_the_Code_from_the_CLI
Pulling the code.
git clone https://git.opendaylight.org/gerrit/p/controller.git
cd controller/opendaylight/distribution/opendaylight/
mvn clean install (uses maven build system, POM.xml is the makefile equivalent).
cd target/distribution.opendaylight-osgipackage/opendaylight/
./run.sh
Prebuild binary download
wget https://jenkins.opendaylight.org/controller/job/controller-
merge/lastSuccessfulBuild/artifact/opendaylight/distribution/ opendaylight/target/distribution.opendaylight-
osgipackage.zip
gunzip distribution.opendaylight-osgipackage.zip
cd opendaylight
./run.sh
Run mininet instances.
sudo mn --controller=remote,ip=127.0.0.1 --topo=linear,2 (topology with 2 hosts and 2 switches).
Access the Controller
http://localhost:8080/
Username : admin
Passwd : admin
14.
15. Download and add the following Jars to you Project Build Path.
ODL REST API reference -
https://wiki.opendaylight.org/view/OpenDaylight_Controller:REST_Reference_a
nd_Authentication
Jersey Download Page -The sample program was built using jersey-bundle-
1.18.jar jar.
https://jersey.java.net/download.html
wget http://repo1.maven.org/maven2/com/sun/jersey/jersey-bundle/1.18/jersey-
bundle-1.18.jar
JavaX Json Bundle Download Page -The sample program was build
using javax.json-1.0.4.jar
http://mvnrepository.com/artifact/org.glassfish/javax.json
wget http://repo1.maven.org/maven2/org/glassfish/javax.json/1.0.4/javax.json-
1.0.4.jar
16. OSGi specification defines a component and service model
for Java.
The components and services (bundles) can be dynamically
installed, activated, de-activated, updated and de-installed.
17. https://github.com/fredhsu/odl-apps
Go to the folder where the controller code was
downloaded using “git clone”
cd controller/opendaylight and extract
mystats.tar.gz
cd mystats
mvn clean install
The bundle is built in the target folder.
Copy the bundle onto OSGI and verify as in
OSGI_OP.