Your SlideShare is downloading. ×
Opendaylight app development
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Opendaylight app development

409

Published on

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

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

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
409
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
26
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.

×