The document discusses the OpenDaylight SDN controller. It provides an overview of OpenDaylight, describing it as an open-source project that promotes Software Defined Networking using technologies like Eclipse, Maven, and OSGi. The document also covers basic hands-on steps for installing and using the OpenDaylight controller, including setting up the environment, writing controller code, using Mininet and the controller's web UI.
pycon apac 2013 presentation
http://apac-2013.pycon.jp/ja/program/sessions.html#session-14-1110-rooma0762-en2-ja
videos are available at
http://www.youtube.com/watch?v=Ow-aXpMO8-o
pycon apac 2013 presentation
http://apac-2013.pycon.jp/ja/program/sessions.html#session-14-1110-rooma0762-en2-ja
videos are available at
http://www.youtube.com/watch?v=Ow-aXpMO8-o
SDN 101: Software Defined Networking Course - Sameh Zaghloul/IBM - 2014SAMeh Zaghloul
Sameh Zaghloul
Technology Manager @ IBM
+2 0100 6066012
zaghloul@eg.ibm.com
SDN: Technology that enables data center team to use software to efficiently control network resources
SDN Overview
SDN Standards
NFV – Network Function Virtualization
SDN Scenarios and Use Cases
SDN Sample Research Projects
SDN Technology Survey
SDN Case Study
SDN Online Courses
SDN Lab SW Tools
- OpenStack Framework
- OpenDayLighyt – SDN Controller
- FloodLight – SDN Controller
- Open vSwitch – Virtual Switch
- MiniNet – Virtual Network: OpenFlow Switches, SDN Controllers, and Servers/Hosts
- OMNet++ Network Simulator
- Avior – Sample FloodLight Java Application
- netem - Network Emulation
- NOX/POX - C++/ Python OpenFlow API for building network control applications
- Pyretic = Python + Frenetic - Enables network programmers and operators to write modular network applications by providing powerful abstractions
- Resonance - Event-Driven Control for Software-Defined Networks (written in Pyretic)
SDN Project
It is for the new users those don't have much knowledge regarding IT Security. Here i focus on Windows In built firewall, Comodo, Zone Alarm and Out Post pro configuration basics.
SOSCON 2019.10.17
What are the methods for packet processing on Linux? And how fast are each packet processing methods? In this presentation, we will learn how to handle packets on Linux (User space, socket filter, netfilter, tc), and compare performance with analysis of where each packet processing is done in the network stack (hook point). Also, we will discuss packet processing using XDP, an in-kernel fast-path recently added to the Linux kernel. eXpress Data Path (XDP) is a high-performance programmable network data-path within the Linux kernel. The XDP is located at the lowest level of access through SW in the network stack, the point at which driver receives the packet. By using the eBPF infrastructure at this hook point, the network stack can be expanded without modifying the kernel.
Daniel T. Lee (Hoyeon Lee)
@danieltimlee
Daniel T. Lee currently works as Software Engineer at Kosslab and contributing to Linux kernel BPF project. He has interest in cloud, Linux networking, and tracing technologies, and likes to analyze the kernel's internal using BPF technology.
This presentation describes the term firewall and it's concepts and provides basic information about it's unix-based software implementations: ebtables, arptables and iptables. This document is a part of a powerpoint presentation which I also uploaded. Made as a project for university course
Slide deck to give some theoretical background before stepping into the hands-on tutorial at http://sdnhub.org/tutorials/opendaylight. Compared to earlier version of this slide deck, this tutorial slide deck has been updated to focus more on MD-SAL and YANG modeled app development.
SDN 101: Software Defined Networking Course - Sameh Zaghloul/IBM - 2014SAMeh Zaghloul
Sameh Zaghloul
Technology Manager @ IBM
+2 0100 6066012
zaghloul@eg.ibm.com
SDN: Technology that enables data center team to use software to efficiently control network resources
SDN Overview
SDN Standards
NFV – Network Function Virtualization
SDN Scenarios and Use Cases
SDN Sample Research Projects
SDN Technology Survey
SDN Case Study
SDN Online Courses
SDN Lab SW Tools
- OpenStack Framework
- OpenDayLighyt – SDN Controller
- FloodLight – SDN Controller
- Open vSwitch – Virtual Switch
- MiniNet – Virtual Network: OpenFlow Switches, SDN Controllers, and Servers/Hosts
- OMNet++ Network Simulator
- Avior – Sample FloodLight Java Application
- netem - Network Emulation
- NOX/POX - C++/ Python OpenFlow API for building network control applications
- Pyretic = Python + Frenetic - Enables network programmers and operators to write modular network applications by providing powerful abstractions
- Resonance - Event-Driven Control for Software-Defined Networks (written in Pyretic)
SDN Project
It is for the new users those don't have much knowledge regarding IT Security. Here i focus on Windows In built firewall, Comodo, Zone Alarm and Out Post pro configuration basics.
SOSCON 2019.10.17
What are the methods for packet processing on Linux? And how fast are each packet processing methods? In this presentation, we will learn how to handle packets on Linux (User space, socket filter, netfilter, tc), and compare performance with analysis of where each packet processing is done in the network stack (hook point). Also, we will discuss packet processing using XDP, an in-kernel fast-path recently added to the Linux kernel. eXpress Data Path (XDP) is a high-performance programmable network data-path within the Linux kernel. The XDP is located at the lowest level of access through SW in the network stack, the point at which driver receives the packet. By using the eBPF infrastructure at this hook point, the network stack can be expanded without modifying the kernel.
Daniel T. Lee (Hoyeon Lee)
@danieltimlee
Daniel T. Lee currently works as Software Engineer at Kosslab and contributing to Linux kernel BPF project. He has interest in cloud, Linux networking, and tracing technologies, and likes to analyze the kernel's internal using BPF technology.
This presentation describes the term firewall and it's concepts and provides basic information about it's unix-based software implementations: ebtables, arptables and iptables. This document is a part of a powerpoint presentation which I also uploaded. Made as a project for university course
Slide deck to give some theoretical background before stepping into the hands-on tutorial at http://sdnhub.org/tutorials/opendaylight. Compared to earlier version of this slide deck, this tutorial slide deck has been updated to focus more on MD-SAL and YANG modeled app development.
An introductory slides for explaining the SDN and NFV technologies. what's the difference between them and when each one is used. Also it talk about some of Cisco products in each area either SDN or NFV or the Automation with some of real use cases deployed in today's service provider network.
Hope you like it
Introduction to the Helium release of OpenDaylightSDN Hub
"Helium" is the second release of OpenDaylight made on Oct 2, 2014. This release has more expanded support for Yang, modeling and autogeneration of REST API, improved performance of MD-SAL datastore using Tree-based Akka storage, better integration with OpenStack Neutron API, support for Group-based Policy and support for Service Function Chaining.
1.What is IP address
2.When & how it was devised
3.IPV4 Features & its functionality
4.Benefits of IPV4 & Devices supporting IPV4
5.Problems of IPV4 & What happened to IPV5
6.What led to IPV6
7.IPV6 Features & Functionality
8.Benefits of IPV6 & supporting devices
9.How transition from IPV4 to IPV6 will happen
10.Problems & challenges that are anticipated & Conclusion
As computer network grow larger and more complex, there is a need for a new simple kind of approach to configure them. SDN has emerged as promising network architecture. It takes the control plane away from the individual nodes and centralize the network control by utilizing a flow based traffic management. Mininet is a cost effective and an efficient way to emulate and study SDN.This paper presents a study of programmable networks with basics of Mininet.
DEVNET-1175 OpenDaylight Service Function ChainingCisco DevNet
This tutorial will overview the OpenDaylight Service Function Chaining (SFC) architecture, implementation and operation. A description of the SFC components and the Network Service Header (NSH) will be presented. This talk will conclude with a step-by-step demonstration of SFC configuration and operation using the GUI and REST interfaces.
DEVNET-1006 Getting Started with OpenDayLightCisco DevNet
Install OpenDaylight within a VM on your own laptop. Acquaint yourself with the development environment. Learn your way around Dlux (GUI) and the CLI to view and operate an OpenDaylight controlled network. Activate and operate integrations to Cisco network elements
Transport SDN & OpenDaylight Use Cases in KoreaJustin Park
In Korea, wired telecommunications carriers have been using assorted transport technologies with diverse network appliances. In order to reduce CAPEX and to avoid vendor lock-in, these transport networks are often comprised of multi-vendor and multi-domain equipment, which leads to high complexity and incompatibility. To overcome this obstacle, research organizations and local telecommunications carriers have been investigating and analyzing the feasibility of transport SDN technology. This talk dishes on the latest trend in Korea telecommunications carriers and the status of their transport SDN technology.
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...mfrancis
OSGi Community Event 2018 Presentation by Lukasz Dywicki (Code-House)
Abstract: During this short presentation I will revisit existing mechanisms and approach towards OSGi and JEE development. I will show how many manual steps can be avoided and how to maintain project in effective manner. I will try to find a balance between execution environment requirements and programmer happines at same time.
I believe that OSGi and Eclipse ecosystem experience troubles gaining people from outside for few reasons. Beside overall impression of OSGi complexity there is equally old and invalid complain about quaility of developer tooling. Since invention of BND development experience can be really pleasant and independent of text editor/IDE preferences. Sadly lots of people still rely on former experiences spreading black/bad PR. I would like to clarify their point.
After this presentation attendees will learn:
How to use Maven to build OSGi projects (without Tycho).
How to automate manual tasks.
How to build custom software distributions with Maven artifacts and run it with Apache Karaf.
That OSGi development doesn't differ much from regular day-to-day usage of application servers or microservice runtimes.
This talk is intended for people who know basics of OSGi as it will show few basic technics towards better developer productivity.
This talk describes the current state of the Veil-Framework and the different tools included in it such as Veil-Evasion, Veil-Catapult, Veil-Powerview, Veil-Pillage, Veil-Ordnance
Old school presentation (2010) about Continuous Integration using Hudson, Maven, Mercurial to build a Java project with unit tests and other quality checks.
After a brief recap of what p2 is and depicting the overall vision, the presenter will show how this vision is realized and how the improvements made to both the runtime (core and UI) and the tooling in Galileo pave the way for a better provisioning solution at Eclipse.
A sample system_design_costestimation_of_webstack_at_awsSumit Arora
The objective of this presentation to explain a sample AWS cloud infrastructure system design of travel web application and estimate approximate cost for the deployment in that cloud.
AMAZON INTERVIEW QUESTIONS FOR SOFTWARE ENGINEERING JOBS
AMAZON Interview Questions for SDE/SDE-T jobs divided In following eight areas ?
[1]. General Areas Questions
[2]. PAST EXPERIENCE AREAS Questions
[3]. Algorithms Questions
[4]. Coding Questions
[5]. TECHNICAL AREAS Questions
[6]. TEST AREAS Questions
[7]. THOUGHT PROCESS Questions
[8]. PROFESSIONAL’S DEFINITION
Microsoft interview questions Microsoft sde sdet jobs Microsoft CareersSumit Arora
Microsoft Interview Questions for SDET/SDE jobs divided In following eight areas ?
[1]. General Areas Questions
[2]. PAST EXPERIENCE AREAS Questions
[3]. Algorithms Questions
[4]. Coding Questions
[5]. TECHNICAL AREAS Questions
[6]. TEST AREAS Questions
[7]. THOUGHT PROCESS Questions
[8]. PROFESSIONAL’S DEFINITION
Microsoft SDET
We are working on many interesting changes to our services and building a next generation of test infrastructure to take quality assurance of our offering to a new level. You will work on defining test strategy for your owned areas, write automation and run tests. In addition, you will work on the product code base to improve its test-ability, diagnostic-ability, debug-ability and overall product health for the storage system. You will get hands-on experience with Performance, Scalability and Service Diagnostic of a distributed system.
Microsoft SDE
Our software engineering profession is a collection of disciplines responsible for designing, developing, and delivering our products. Work here and you’re on top of the world of technology, collaborating with brilliant people on projects with the potential for a lasting legacy. Developers (Software Development Engineers – SDEs) write the code—C, C++, C#, and other programming languages—that turns concepts into new technologies and services. We are experts in feature design and feasibility, and we collaborate with program managers and test engineers to define features and ensure quality.
Google Interview Questions Divided In Following EIGHT
Areas ?
[1]. General Areas Questions
[2]. PAST EXPERIENCE AREAS Questions
[3]. Algorithms Questions
[4]. Coding Questions
[5]. TECHNICAL AREAS Questions
[6]. TEST AREAS Questions
[7]. THOUGHT PROCESS Questions
[8]. PROFESSIONAL’S DEFINITION
Hyperic HQ for Cloud Infrastructure MonitoringSumit Arora
Hyperic is application monitoring and performance management for virtual, physical, and cloud infrastructures. Auto-discover resources of 75+ technologies, including vSphere, and collect availability, performance, utilization, and throughput metrics.
Features
Automatically discovers, monitors, and manages software and network resources
Monitors apps on any platform, including Unix, Linux, Windows, Solaris, AIX, HPUX, VMware, and Amazon Web Services
Built-in support for 75 common components—including databases, application servers, middleware, web servers, network devices and more
Optimized for virtual environments with integration with vCenter and vSphere
How much time did you spend preparing for google's interviewsSumit Arora
You need to follow a very organized and disciplined approach to prepare for the Software Engineering Job at Facebook /Google /Amazon/Microsoft etc.
�
HERE IS THE PLAN WHICH I FOUND TO BE REASONABLE
�
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
I have heard many times that architecture is not important for the front-end. Also, many times I have seen how developers implement features on the front-end just following the standard rules for a framework and think that this is enough to successfully launch the project, and then the project fails. How to prevent this and what approach to choose? I have launched dozens of complex projects and during the talk we will analyze which approaches have worked for me and which have not.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
1. OpenDayLight SDN Controller
________________________________________________________________________
SUMIT ARORA
sumit1234@gmail.com
Last updated : 11th-Nov-2014
2. Limit of Liability/Disclaimer of Warranty: Overall explanation presented on this ppts ,are based on my views, my learning, and my language it may differ from your
understanding, as my learning curve still rolling.
The author makes no representations or warranties with respect to the accuracy or completeness of the contents of this work and specifically disclaims all warranties,
including without limitation warranties of fitness for a particular purpose. The fact that an organization or web site is referred to in this work as a citation and/or a
potential source of further information does not mean that the author endorses the information the organization or web site may provide or the recommendations it
may make. Furthermore, readers should be aware that Internet web sites listed in this work may have changed or disappeared between when this work was written
and when it is read. So feel free write me your comments to make this better if any : sumit1234@gmail.com
3. OPENDAYLIGHT
Opendaylight is a project which promotes the
Software Defined Networking.
Officially started on April -8th-2013.
The linux foundation planned an pivotal role
in it, but it’s a consortium and multiple tech
companies are partnered to led the SDN.
Its based on Eclipse Public License – v 1.0
(EPL).
4. SOFTWARE DEFINED NETWORKING
Software defined networking is
a research area which let a
network to program, It also
output network control
applications, and those
applications are to control the
network
Example :
•A network formed by the
openflow enabled switch.
•Controller Platform provides
the OPEN APIs to program the
network.
•Controller Applications control
the network based on the
needs
N
e
t
w
o
r
k
Controller Applications
6. SET THE ENVIRONMENT – Step-1
Step-1
Set the Environment
•Install Virtual Box
•Install Ubuntu
•Install Eclipse IDE
•Install Maven
•Install Graphical Visualization for
dependency modules
•Install Mininet
•Wireshark OF Plugin to Capture OF Packets
Virtual Box
Mininet
7. Controller Code – Step-2
Controller Code
•Download the Code
•Compile the code via
mvn clean install
•Import the project to eclipse
•Launch the project
1
2
3
4
Step-2
8. Mininet – Step-3
Mininet
•Start mininet
•Create a network e.g. sudo mn --
controller=remote,ip=192.168.10.32 --
topo single
SSH to mininet – Created one network
mininet
Step-3
10. Controller’s Web UI-step-4
• WebUI shows one network element
• Add the Gateway Address
*Please refer “Explore as a
developer section” for
Gateway IP Configuration on
ODL’s Web UI
11. Controller’s Web UI-Step-4
•Perform Ping on mininet network
•See the network graph on UI
•The learnt path appears based
on the ping performed.
•CREATE VARIOUS NETWORK ON MININET
•BREAKPOINTS ON ECLIPSE
•TRACE Open Flow PACKETS ON WIRESHARK
12. How to get the Support ?
You may face installation Issue
You may face compilation Issue
You may face eclipse related Issue
e.g. sudo maven clean install may
show OutOfMemory Error
Possible Solution :
[1] . Run sudo maven clean install –
DskipTests (It will skip the tests to
done)
[2]. Check the VM’s memory size (it
should be minimum 2.5 GB
If so :
Refer the last page references / See
the installation/opendaylight videos
on youtube.
http://www.youtube.com/watch?v=hXWhgWMoNHM
http://www.youtube.com/watch?v=vjRJ8d_0Jwo
13. How to get the Support ?- Mailing Lists
[Also recommended]
Subscribe to these for
discussion/development:
discuss@lists.opendaylight.org
controller-dev@lists.opendaylight.org
14. IRC – Internet Relay Chat for opendaylight controller
Open this link : http://webchat.freenode.net/ 1
2
3
22. For Latest Simultaneous Release: Helium Release Plan
https://wiki.opendaylight.org/view/Simultaneous_Release:Helium_Release_Plan
23. Explore it as a Developer
________________________________________________________________________
OpenDayLight Controller
24. LOGICAL ARCHITECTURE
Open Daylight
Controller is a JVM so it
can run on any metal
and OS provided
•JVM 1.7+
•Linux (Ubuntu or RHEL
or Fedora or Any other
popular Linux Distro
that supports Java)
ODL Controller
25. Software Tools/Paradigms
OpenDayLight uses the following software tools/paradigms. It is important to become
familiar with them:
•Maven: OpenDayLight uses Maven for easier build automation. Maven uses pom.xml
(Project Object Model for this bundle) to script the dependencies between bundles and
also to describe what bundles to load on start.
•OSGi: This framework in the backend of OpenDayLight allows dynamically loading bundles
and packaged Jar files, and binding bundles together for information exchange.
•Java interfaces: Java Interfaces are used for event listening, specifications and forming
patterns. This is the main way in which specific bundles implement call-back functions for
events and also to indicate awareness of specific state.
•REST APIs : are north bound APIs e.g. Topology,Host Tracker,Flow Programmer,Static
Routing ,Statistics, Subnets ,Switch Manager
26. OSGI Bundles
Bundle (Application)
Hardware
Bundle
Bundle
Bundle
Operating System
OSGi
Java VM
Driver Driver Driver
= service interface
exported and imported
by bundles
The system(ODL-SDNC) is made of modules
that express interest in services and expose
services.
An OSGi application has no top and no bottom—it is simply a collection
of bundles. There is also no main program; some bundles contribute
code libraries; others start threads, communicate over the network,
access databases, or collaborate with still others to gain access to
hardware devices and system resources. While there are often
dependencies between bundles, in many cases bundles are peers in a
collaborative system.
Bundle A
{}
= service, java interface
Bundle B
{}
Bundle C
{}
27. OpenDayLight Controller’s Bundles
The lifecycle of the
bundle starts from the
<Bundle-Activator>
The main function of
the activator is two fold
1) To start/stop the
execution
2) To control the
lifecycle of the objects
that will implement the
business logic
The Import-
Packages/Export-Packages
are dependencies for the
bundles, from the classpath
point of view. In OSGi each
bundle has it's own
classpath,and the
Import/Export,decide how
the classpath will be
constructed
28. OpenDayLight Controller’s Developer Dive
Mutil-Tenant is supported via the concept of Container
•Container –A Self Sufficient functional entity, It identified by the Unique Name
•Multiple containers are possible
•Each of this Container can have Topology Managers, ARP Handler, Host Tracker , Form its
own Topology and run its own topology Algorithm for its domain.
•Each of the domain can choose to control the entire network or part of the
network or certain application in the network subnet
•Each module ( or bundles) can be configured to Participate in any of the containers.
•Each of the container can have its own administrative and management access
•By default : when the controller comes , each service in the controller such as topology.
ARP,Host –Tracker etc all belong to default container.
•Currently every module express its interest for “default” container in order to make
the base controller to work
29. OpenDayLight Controller’s Developer Dive
GRAPHICAL VISUALIZATION FOR DEPENDENCY MODULES
Step 1 : Just install this plugin via "Install New Software ..." by adding site -
http://www.eclipse.org/pde/incubator/dependency-visualization/
Step 2 : Restart Eclipse
Step 3 : Navigate to "Window --> Show View --> Other .. --> Plug-in Development --> Graph Plug-in Dependencies" - this
opens the "Plug-in Dependency Analysis" pane at the bottom
Step 4 : Right-click on the pane and select "Focus On", this opens "Plug-in Selection" dialog. Type the plugin to choose -
eg. “topolgymanager", select the plugin from the list and .. ... you get a nice dependency view of the “topologymanager"
plugin !!
30. OpenDayLight Controller’s Developer Dive
How to start the inspection ?
There is no hard-coded entry point. The most important methods are getImplementations/configureInstance
and getGlobalImplementation/configureGlobalInstance.
Example -1 :
Each bundle can decide what to implement. Looking at the ARPHandler module. There is getImplementations. It
returns an Object[] with ArpHandler.class that tells the business logic is implemented by the ArpHandler class when
instantiated.[A bundle can have many objects implementing the business logic.]
Example-2 : protocol_plugins.openflow
package org.opendaylight.controller.protocol_plugin.openflow.internal;
public Object[] getImplementations() {
Object[] res = { TopologyServices.class, DataPacketServices.class,
InventoryService.class, ReadService.class,
FlowProgrammerNotifier.class };
return res;
31. OpenDayLight Controller’s Developer Dive
How to start the inspection ? package org.opendaylight.controller.arphandler.internal;
[1] .On configuring the ArpHandler
object:
[2].ArpHandler will publish the
services listed in the c.setInterface.
[3].While it will consume the
services provided by others and
listed in the
c.add(createServiceDependency
This is how a business logic object
provides and consume services
All the black magic underneath that
power this mechanism, is provided
by the Apache Felix Dependency
Manager
3
1
2
32. OpenDayLight Controller’s Developer Dive
Services [ Example]
The SAL provides basic services like Device Discovery
which are used by modules like Topology Manager
to build the topology and device capabilities.
Topology Service is a set of services that allow
to convey topology information like a new node
a new link has been discovered and so on.
Discovery Service The interface provides the
methods to notify the listener when an edge is
added/deleted/changed.
Flow Programming service provide
, installing/modifying/removing flows
on a network node.
33. OpenDayLight Controller’s Developer Dive
Gateway IP
Configuration
on ODL’s Web UI
•The Gateway IP configuration is purely meant to provide a way for the Controller to aid the ARP handler to do Proxy ARP
functionality.
•It would need Subnet Gateway IP Configuration in the controller for all the Subnets being assisted by the controller.
•The Subnet gateway IP configuration is generic in nature and can be used for other purposes
34. OpenDayLight Controller’s Developer Dive
PacketIn Message
The packetIN is an openflow specific function so it's handled by the openflow protocol
plugin. once a network element deliver a packetIN to the controller the openflow protocol
plugin[org.opendaylight.controller.protocol_plugin.openflow] will get it and transform in
RawDataPacket then dispatch via SAL(Service Abstraction Layer) data packet services
Serial: When a Data Packet Listener gets a packet after another,
this case is necessary when the subsequent handler needs some
extra information that can only be provided by another Data Packet
Service Handler.
props.put("salListenerDependency", "loadbalancer");
props.put("salListenerName", “arphandler");
[ARPHandler would get the packet only after loadbalancer]
Parallel : When a Data Packet Listener doesn't
express any dependency then it will get a copy of
the packet as anybody else. [IListenDataPacket]
35. OpenDayLight Controller’s Developer Dive
[1]. Say the OpenFlow plugin
receives an ARP packet that need
to be dispatched to the ARP
Handler Application
[2]. The OpenFlow Plugin will call
IPluginOutDataPacketService to
get the packet to the SAL.
[3]. The ARP Handler Application
would’ve registered to the
IListenDataPacket Service. The
SAL upon receiving the packet (in
#2 above) will thus handover the
packet to the ARP Handler App.
[4]. The Application can now
process the packet.
[1].The Application constructs the packet and calls
the interface IDataPacketService provided by SAL
to send the packet. The Destination network
device is to be provided as part of the API.
[2].SAL will then call the
IPluginInDataPacketService interface for a given
Protocol plugin based on the destination network
device (OpenFlow Plugin in this case)
[3].The Protocol plugin will then ship the packet
to the appropriate network element. The plugin
will handle all protocol specific processing.
Data Packet Service
36. OpenDayLight Controller’s Developer Dive
When a module tries to install a flow rule to some switch, how the rule is processed.
(When multiple modules independently install flow rules to switches, it will
inevitably conflict with other rules)
The logic is pretty simple at the moment, if someone tries to install an entry and there
is a previous one covering the same match, a conflict is raised
•There are various interfaces provided by the forward rule manager e.g. asynchronous
,synchronous. Those interfaces send the message via
org.opendaylight.controller.protocol_plugin.openflow.core; to the switch.
•Forward rule manager maintains the openflow-switch’s rules database in ruledb data
structure.
•For the installation of a rule, based on the given parameters (e.g. switch id, match
parameters, action) It first verify the conflict on its ruleDB, If that return success, then it
forward this rule as flow-mod packet to install the rule on a specific switch.
37. OSGI Commands…
https://access.redhat.com/documentation/en-US/Fuse_ESB_Enterprise/7.1/html/Console_Reference/files/Consoleosgi.html
http://felix.apache.org/site/41-console-and-commands.html
http://www.vogella.com/tutorials/OSGi/article.html
osgi> b 77
org.opendaylight.controller.networkutils.implementation_0.4.3.SNAPSHOT [77]
Id=77, Status=ACTIVE Data Root=E:odlheliumcontrolleropendaylightdistributionopendaylighttargetdistribution.opendaylight-osgipackage
opendaylightconfigurationorg.eclipse.osgibundles77data
"Registered Services"
{org.opendaylight.controller.sal.core.IContainerAware}={service.id=75}
Services in use:
{org.osgi.service.log.LogService, org.eclipse.equinox.log.ExtendedLogService}={service.id=8}
No exported packages
Imported packages
org.opendaylight.controller.sal.core; version="0.8.2.SNAPSHOT"<org.opendaylight.controller.sal_0.8.2.SNAPSHOT [82]>
org.slf4j; version="1.7.2"<slf4j.api_1.7.2 [7]>
org.apache.commons.net.telnet; version="3.0.1"<org.apache.commons.net_3.0.1 [119]>
org.opendaylight.controller.networkutils; version="0.4.3.SNAPSHOT"<org.opendaylight.controller.networkutils_0.4.3.SNAPSHOT [161]>
org.apache.felix.dm; version="3.0.0"<org.apache.felix.dependencymanager_3.1.0 [32]>
org.opendaylight.controller.sal.connection; version="0.1.3.SNAPSHOT"<org.opendaylight.controller.sal.connection_0.1.3.SNAPSHOT [143]>
org.apache.commons.net; version="3.0.1"<org.apache.commons.net_3.0.1 [119]>
org.opendaylight.controller.connectionmanager; version="0.1.3.SNAPSHOT"<org.opendaylight.controller.connectionmanager_0.1.3.SNAPSHOT [64]>
org.opendaylight.controller.sal.inventory; version="0.8.2.SNAPSHOT"<org.opendaylight.controller.sal_0.8.2.SNAPSHOT [82]>
org.opendaylight.controller.clustering.services; version="0.5.2.SNAPSHOT"<org.opendaylight.controller.clustering.services_0.5.2.SNAPSHOT [16]>
org.opendaylight.controller.sal.flowprogrammer; version="0.8.2.SNAPSHOT"<org.opendaylight.controller.sal_0.8.2.SNAPSHOT [82]>
org.opendaylight.controller.sal.reader; version="0.8.2.SNAPSHOT"<org.opendaylight.controller.sal_0.8.2.SNAPSHOT [82]>
org.opendaylight.controller.forwardingrulesmanager; version="0.6.1.SNAPSHOT"<org.opendaylight.controller.forwardingrulesmanager_0.6.1.SNAPSHOT [139]>
org.opendaylight.controller.switchmanager; version="0.7.2.SNAPSHOT"<org.opendaylight.controller.switchmanager_0.7.2.SNAPSHOT [145]>
org.opendaylight.controller.sal.match; version="0.8.2.SNAPSHOT"<org.opendaylight.controller.sal_0.8.2.SNAPSHOT [82]>
org.opendaylight.controller.sal.utils; version="0.8.2.SNAPSHOT"<org.opendaylight.controller.sal_0.8.2.SNAPSHOT [82]>
No fragment bundles
Named class space
org.opendaylight.controller.networkutils.implementation; bundle-version="0.4.3.SNAPSHOT"[provided]
No required bundles
38. Creating a New Module
________________________________________________________________________
OpenDayLight Controller
39. Creating A New Module
Open this link : http://sdnhub.org/tutorials/opendaylight/
40. Creating A New Module
•Perform the steps as specified in the tutorial
•do sudo mvn clean install -DskipTests
•It will generate ../target/L2Forwarding-0.4.0-
SNAPSHOT.jar
41. Creating A New Module
•Run the opendaylight
controller in Debug Mode
43. Creating A New Module
•Insert the break points
•Perform ping from mininet
•Trace the code
44. Explore It As A Researcher
________________________________________________________________________
OpenDayLight Controller
45. Explore it as a researcher
You may research what can be achieved by replacing the traditional network
with openflow based network and opendaylight SDN controller.
You may research the bottlenecks/assistance of openflow based network with
opendaylight sdn controller e.g. rule conflicts while installing the rules in
dynamic situation (see this : http://frenetic-lang.org/pyretic/ and listen to
Jennifer Rexford: http://www.cs.princeton.edu/~jrex/ ) .
You may design set of use cases and prove that on these situation openflow
based network with opendaylight SDN controller perform better than the
traditional network.
http://networkstatic.net/sdn-use-cases-for-service-providers/
http://thecareertools.com/2013/10/24/use-cases-of-software-defined-network/]
You may introduce any additional methodology e.g. System and methods for
xyz….with SDN e.g Optimizing the 'One Big Switch' abstraction in Software
Defined Networks. HotSwap: Correct and efficient controller upgrades for
Software-Defined Networks.
46. Explore It As A Business
________________________________________________________________________
OpenDayLight Controller
47. Explore it as a business
• You may pick up a design pattern of data
center based network e.g. either self
experienced or detailed discussion with
relevant candidates of Data Center
Network (Network Admins, Network
Designers, Network Maintainers)
• You may design the technicalities with
existing network situations.
• You may then shape an opendaylight SDN
controller/openflow based product, which
can solve some business problems e.g.
managing the network by controller
reduces 50% of operational cost and
increases the maintenance or
administration flexibility e.g.
http://www.bigswitch.com/company/over
view
48. Explore It As A Employee
________________________________________________________________________
OpenDayLight Controller
49. Explore it as a business
• If you are an employee of a company and
you have been given some work related to
SDN, continue to do the assigned work
item, If your interest increases then you
are free bird to do anything.
• And if you are newbie with opendaylight
sdn controller, then here are the steps
which will be as a jump start :
http://thecareertools.com/2013/09/28/open
daylight-sdn-controller-for-newbies/
50. Explore It As Your Interest
________________________________________________________________________
OpenDayLight Controller
51. Explore it as a interest
• If you are a die-hard
network enthusiasts and
truly want to explore the
practical internals of the
network.
52. Explore it as a interest
• You may contribute
to opendaylight,
you may design a
new user interface
for a home based
router, you may
create an integrated
controller for your
campus network,
you are free bird…
53. So enjoy with SDN, once
again, according to my
experience the SDN
abstractly means Software
Defined Networking.
Means A Software can
define the network or A
Software can control
network but which Software
and which network, you
have to explore.