Brain child of clean slate initiative.. from
Stanford.. and active contributions from UC
Berekley.
The current network arc...
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
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . ...
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
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . ...
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
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . ...
Network Virtualization
Layer
N e twork O S / S D N C ontroller
APP APP APP APP
Data Path
Forwarding Table Data Path
Forwar...
Its an architectural style, based on the current
architecture ofWorldWideWeb, with certain
constraints.
Every resource in ...
human-readable text to transmit data objects consisting of
attribute–value pairs.
{"employees":[
{"firstName":"John", "las...
Java Setup
 apt-get install git
 apt-get install openjdk-7-jre
 apt-get install openjdk-7-jdk
 apt-get install maven
...
https://wiki.opendaylight.org/view/OpenDaylight_Controller:Pulling,_Hacking,_and_Pushing_the_Code_from_the_CLI
Pulling the...
Download and add the following Jars to you Project Build Path.
ODL REST API reference -
https://wiki.opendaylight.org/view...
OSGi specification defines a component and service model
for Java.
The components and services (bundles) can be dynamicall...
https://github.com/fredhsu/odl-apps
Go to the folder where the controller code was
downloaded using “git clone”
cd control...
Opendaylight app development
Opendaylight app development
Opendaylight app development
Opendaylight app development
Opendaylight app development
Upcoming SlideShare
Loading in …5
×

Opendaylight app development

1,018 views

Published on

Introduction to Opendaylight/architecture and simple AD SAL based app development

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,018
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
42
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Opendaylight app development

  1. 1. 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.
  2. 2. 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
  3. 3. 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)
  4. 4. 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…...
  5. 5. 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
  6. 6. 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
  7. 7. 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>
  8. 8. 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.
  9. 9. 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
  10. 10. 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&nbsp; 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
  11. 11. 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.
  12. 12. 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.

×