SlideShare a Scribd company logo
DEVNET-1166	Open SDN Controller APIs
Cisco Open SDN Controller APIs
Raghurama Bhat – Principal Engineer
• Introduction
• Model Driven APIs
• RESTCONF
• Inventory
• Topology
• Openflow
• Demo
• Developer support
• Additional Resources
Agenda
The Cisco Open SDN Controller
• Based on OpenDaylight Helium
• Packaged as a Virtual Machine
• Key MD-SAL features pre-installed
• OpenFlow, NETCONF/YANG, BGP/PCEP, etc.
• Integrated User Interface
• Supports single-node and 3-node cluster
• Limited Availability Release as of April 30th , 2015
• See the /dev/innovate pod here in DevNet
A commercial distribution of the OpenDaylight SDN Controller
• Open platform for
network
programmability
• Enables SDN for
networks at any size
and scale
• New “Helium” release
delivers new user
interface and a much
simpler and
customizable
installation process
• Users can add value at
any layer (Apps,
Network Services, SB
Plugins)
OpenDaylight Controller
Cisco Contributions
“Just for the YANG of it”
• YANG is a data modeling language
• Documented in RFC6020
• Designed to model NETCONF data (see RFC6241)
• OpenDaylight’s MD-SAL is “Model Driven Service Abstraction Layer”
• “Model” == YANG Model
• OpenDaylight contains over 100 YANG models
• YANG is used as our IDL
• Southbound plugins described by YANG Models
• NETCONF plugin learns models from connected devices at run-time
Everything in MD-SAL is YANG modeled
RESTCONF
• REST protocol over HTTP
• For accessing data defined in YANG
• Container or List
• NOT leaf or leaf-list
• Using data stores defined in NETCONF
• YANG Modules are listed under
• /restconf/<Module> in top-level API
• Data classification based on the YANG config statement
• Request and response data can be in XML or JSON format. XML has structure
according to yang by XML-YANG and JSON by JSON-YANG
REST API Auto generated from the YANG Models
RESTCONF
• Two datastores are accessible:
• Config
• Data inserted by the Applications (REST Or Java)
• /restconf/config/<Module>/<Xpath to Container>
• Operational
• State of the network elements fetched from the network
• /restconf/operational/<Module>/<Xpath to Container>
REST API Auto generated from the YANG Models
RESTCONF URI
9
• It must start with <moduleName>:<nodeName> where <moduleName> is a
name of the YANG module and <nodeName> is the name of the top level node
in the module.
• Child nodes has to be specified in format:
• <nodeName> - can be used every time expect case when node with the same name
was added via augmentation from external YANG model (Concretely: Module A has
node A1 with child X. Module B augments node A1 by adding node X.)
• <moduleName>:<nodeName> - is valid every time
• <nodeName> has to be separated by /
• <nodeName> can represent a data node which is of list or container YANG
built-in type. If the data node is a list, there must be defined keys of the list
behind the data node name for example,
<nodeName>/<valueOfKey1>/<valueOfKey2>.
OSC API Authentication scheme
10
• OSC uses a Token based authentication scheme
• Issue the following request to get a token
• https://{{HOST}}/controller-
auth?grant_type=password&username={{user}}&password={{password}}&scope=sdn
• Response: {"expires_in":86400000,"token_type":"Bearer","access_token":"a304e0f0-ad68-3d93-
8986-cd775f3b9949"}
• Subsequent requests need the Basic Authorization Header of the form: "token:<token>”
• Here is a fragment of Javascript to automate the process
var data = JSON.parse(responseBody);
postman.setGlobalVariable("token", data.access_token);
var creds = btoa("token:" + data.access_token);
postman.setGlobalVariable("Authorization", "Basic " + creds);
Open SDN Controller YANG Models/APIs
• Inventory
• Topology
• Openflow
• Flow programming via Openflow Plugin RPC
• Flow programming via Config Inventory
• BGP
• PCEP
• Any Additional Plugins
• Mounted NETCONF Devices
REST API Auto generated from the YANG Models
Inventory
Topology
OpenFlow Models
Open Flow Models
This example provides the details to program a flow that
matches Ethernet packets with source MAC address
00:00:00:00:23:ae and destination MAC address
20:14:29:01:19:61 and sends them to port 2.
• Headers:
• Content-type: application/xml
• Accept: application/xml
• Authentication: admin:admin
• URL: http://<controller-
ip>:8181/restconf/config/opendaylight-
inventory:nodes/node/{node-id}/table/{table-id}/flow/{flow-
id}
• Example URL:
http://localhost:8181/restconf/config/opendaylight-
inventory:nodes/node/openflow:1/table/0/flow/1
• Method: PUT
L2 Flow Programming Sample
This example provides the details for programming a flow
that matches IP packets (ethertype 0x800) with the
destination address within the 10.0.10.0/24 subnet and
sends them to port 1.
• Headers:
• Content-type: application/xml
• Accept: application/xml
• Authentication: admin:admin
• URL: http://<controller-
ip>:8181/restconf/config/opendaylight-
inventory:nodes/node/{node-id}/table/{table-id}/flow/{flow-
id}
• Example URL:
http://localhost:8181/restconf/config/opendaylight-
inventory:nodes/node/openflow:1/table/0/flow/1
• Method: PUT
L3 Flow Programming Sample
REST APIs
18
RESTCONF APIs
For checking configuration
and operational states
List of exposed Northbound
APIs available via DevNet
and on platform
JAVA APIs
19
JAVA APIs
For network services
creation; event listening,
specifications and
forming patterns
SAL Binding, Common,
Connector and Core
APIs provided
List of exposed JAVA
APIs available via
DevNet
Java apps inside Cisco Open SDN Controller
• The controller creates Java APIs from YANG models at run-time
• YANG model maps to Java classes (class per container, list, typedef etc.)
• Java APIs designed for performance
• DTOs are immutable (write once/read many)
• APIs are asynchronous (no need to spawn a thread to wait for each data item)
• Apps packaged as Karaf features
• .kar files in the controller’s “deploy” directory will auto-install
The Tools
• A text editor, preferably an IDE like IntelliJ IDEA or Eclipse
• YANG – Modeling language (see RFC 6020)
• Java 1.7 – Programming language
• Maven >= 3.2.3 – Build tool
• OSGi – technology for building modular systems
• Karaf – technology for deploying and managing OSGi bundles
Apache Karaf Container
• Modular (Deploy only the
features/bundles you need)
• Hot Deployment
• Dynamic Configuration
• Powerful Extensible Shell
Console + Remote Access
• Native OS Integration
• Logging
• Security Framework
• Supports any Component
that can be wrapped as Jar
A:bun
dle
B:bun
dle
Y:bun
dle
X:bun
dle
C:bun
dle
f1 f2
comm
on
my-
features.xml
The Service Development Process
23
YANG Model (s)
Yang Tools
Generated API
Service
Implementation
Maven
Build Tools
Karaf Feature
Definition
Maven
Build Tools
Maven
Build Tools
1
2
3
OSGi API JAR
OSGi IMPL JAR Karaf KAR
4
Controller
5
• OSGi API JAR
• OSGI IMPL JAR
• Features.xml
Generate API
Deploy
Demo
SupportLearn / Build Validate Sell / Monetize
SDK on DevNet
• Getting Started Guides
• Reference Guides
• Code samples
• Videos
• Etc
Integration Points
• NB Rest APIs
• Network Service JAVA APIs
• OpenFlow 1.0 and 1.3
Interfaces
• NetConf / YANG Interface
• BGPLS Interface
• PCEP Interface
• OVSDB Interface
Community and Pay-As-
You Go Support
Developer Sandbox
Interop Validation Testing
• Application Specific Test Plans
• For Fee Testing
• Successful IVT completion allows
use of Cisco Compatible logo
Solution Partner Program
• Solution Marketplace listing
App Store (future)
• Streamlined sales and
delivery of 3rd party apps
(light-weight version of
Solutions Plus program)
Mandatory Coordinated
Customer Support
3rd Party Developer Enablement (DevNet Plan)
Cisco Open SDN Controller Developer Lifecycle
Devnet Portal for Cisco Open SDN Controller
developer.cisco.com/site/openSDN
Documentation
API Reference Guides
Video
Code samples
Sandbox environment
ODL/OSC Sessions in CLIVE 2015 San Diego
Session ID Session Name Location Session Lead
SD7 Open Flow Apps with Cisco Open SDN Controller World of Solutions
Vijay Kannan, Vasanth
Raghavan, Steven Carter,
Rao, Hema
LTRSDN-1913 Cisco Open SDN Controller Hands-on Lab
30B Upper Level: Wednesday, Jun 10, 1:00 PM -
5:00 PM
Salman Asadullah, Jeff
Teeter
DEVNET-1166 Open SDN Controller APIs
DevNet Classroom2 :Monday, Jun 8, 11:30 AM -
12:30 PM
Raghurama Bhat
DEVNET-2005
Using the Cisco Open SDN Controller RESTCONF
APIs
DevNet Classroom 1 Tuesday, Jun 9, 4:00 PM -
5:00 PM
Giles Heron
PCSSOL-1052 Software Defined Matrix Switching
Wednesday, Jun 10, 5:30 PM - 5:45 PM– Solution
Theater East
David Chandler - Practice
Manager Enterperise
Network Solutions, WWT
DEVNET-1164
Using OpenDaylight for Notification Driven
Workflows
DevNet Classroom 2: Thursday, Jun 11, 1:30 PM Andrew McLachlan
DEVNET-1175 OpenDaylight Service Function Chaining
Thursday, Jun 11, 1:30 PM - 2:00 PM– DevNet
Classroom 2
Paul Quinn
DEVNET-1152 OpenDaylight YANG Model Overview and Tools Tuesday, Jun 9, 9:00 AM - 10:00 AM Juraj, Giles, Bimal
DEVNET-1162
OPNFV – The Foundation for Running Your Virtual
Network Functions
DevNet Classroom 2: Thursday, Jun 11, 12:30 PM -
1:00 PM
Frank Brockners
DEVNET-2017 Service Chaining for SDN/NFV - State of the Stack
Devnet Theater: Tuesday, Jun 9, 4:00 PM - 4:30
PM
Uri Elzur, Intel Corp
DEVNET-1153
Enterprise Application to Infrastructure Integration
– SDN Apps
Monday, Jun 8, 2:30 PM - 3:00 PM Vasanth Raghavan
TECMPL-3200 SDN WAN Orchestration Principles and Solution 15B Mezz: Sunday, Jun 7, 1:00 PM - 5:00 PM Chris Metz, Josh Peters
PSOSDN-2005 Group Based Policy: Consistent Network Policy
23C Upper Level: Thursday, Jun 11, 1:00 PM -
2:00 PM
Sanjay Agarwal
BRKSDN-2761
OpenDaylight: The Open Source SDN Controller
Platform 16B Mezz: Monday, Jun 8, 10:00 AM - 12:00 PM
Ed Warnecke
DEVNET-1006 Getting Started with OpenDayLight
DevNet Classroom 1:Wednesday, Jun 10, 2:30 PM
- 3:30 PM
Giles Heron, Charles Eckel
DEVNET-1174 OpenDaylight Apps Development Panel
DevNet Theater:Monday, Jun 8, 12:00 PM - 1:00
PM
Giles, Chris, Niklas, Bimal,
Juraj
TECNMS-2009 - NETCONF/YANG Modeling 17AB Mezz: Sunday, Jun 7, 8:00 AM - 12:00 PMT Mike, Giles, Jan, Juraj
Thank you

More Related Content

What's hot (20)

PDF
Introduction to Data Models & Cisco's NextGen Device Level APIs: an overview
Cisco DevNet
 
PPTX
Openstack Neutron Insights
Atul Pandey
 
PDF
Webinar: Applying REST to Network Management – An Implementor’s View
Tail-f Systems
 
PDF
Tail-f Webinar OpenFlow Switch Management Using NETCONF and YANG
Tail-f Systems
 
PPTX
Software Defined Network - SDN
Venkata Naga Ravi
 
PDF
NCS: NEtwork Control System Hands-on Labs
Cisco Canada
 
PDF
Container Service Chaining
Open Networking Summit
 
PPTX
OpenFlow Switch Management using NETCONF and YANG
Tail-f Systems
 
PDF
Simplifying the OpenStack and Kubernetes network stack with Romana
Juergen Brendel
 
PDF
SDN & NFV Introduction - Open Source Data Center Networking
Thomas Graf
 
PPTX
OpenDaylight and YANG
CoreStack
 
PDF
Tech Talk by John Casey (CTO) CPLANE_NETWORKS : High Performance OpenStack Ne...
nvirters
 
PDF
ONOS Falcon planning presentation
Bill Snow
 
PDF
Learnings from Carrier SDN Deployments
Open Networking Summits
 
PDF
Tech Tutorial by Vikram Dham: Let's build MPLS router using SDN
nvirters
 
PDF
OpenDaylight-in-NextGenNetworkServices
Charles Eckel
 
PPTX
DEVNET-1175 OpenDaylight Service Function Chaining
Cisco DevNet
 
PDF
ONUG Tutorial: Bridges and Tunnels Drive Through OpenStack Networking
markmcclain
 
PDF
Tungsten Fabric Overview
Michelle Holley
 
PPTX
Network and Service Virtualization tutorial at ONUG Spring 2015
SDN Hub
 
Introduction to Data Models & Cisco's NextGen Device Level APIs: an overview
Cisco DevNet
 
Openstack Neutron Insights
Atul Pandey
 
Webinar: Applying REST to Network Management – An Implementor’s View
Tail-f Systems
 
Tail-f Webinar OpenFlow Switch Management Using NETCONF and YANG
Tail-f Systems
 
Software Defined Network - SDN
Venkata Naga Ravi
 
NCS: NEtwork Control System Hands-on Labs
Cisco Canada
 
Container Service Chaining
Open Networking Summit
 
OpenFlow Switch Management using NETCONF and YANG
Tail-f Systems
 
Simplifying the OpenStack and Kubernetes network stack with Romana
Juergen Brendel
 
SDN & NFV Introduction - Open Source Data Center Networking
Thomas Graf
 
OpenDaylight and YANG
CoreStack
 
Tech Talk by John Casey (CTO) CPLANE_NETWORKS : High Performance OpenStack Ne...
nvirters
 
ONOS Falcon planning presentation
Bill Snow
 
Learnings from Carrier SDN Deployments
Open Networking Summits
 
Tech Tutorial by Vikram Dham: Let's build MPLS router using SDN
nvirters
 
OpenDaylight-in-NextGenNetworkServices
Charles Eckel
 
DEVNET-1175 OpenDaylight Service Function Chaining
Cisco DevNet
 
ONUG Tutorial: Bridges and Tunnels Drive Through OpenStack Networking
markmcclain
 
Tungsten Fabric Overview
Michelle Holley
 
Network and Service Virtualization tutorial at ONUG Spring 2015
SDN Hub
 

Viewers also liked (16)

PPTX
SDN_and_NFV_technologies_in_IoT_Networks
Srinivasa Addepalli
 
PDF
New NeXt for Advanced Developers
Cisco DevNet
 
PPTX
Smart Citizen Kit in Barcelona, Amsterdam & Manchester
Frank Kresin
 
PDF
OpenStack and OpenDaylight, The Evolving Relationship in Cloud Networking: a ...
Cisco DevNet
 
PPTX
DEVNET-1154 Open Source Presentation on Open Standards
Cisco DevNet
 
PPTX
API Management for Software Defined Network (SDN)
Apigee | Google Cloud
 
PPTX
DevNet Express - Spark & Tropo API - Lisbon May 2016
Cisco DevNet
 
PPTX
ioT_SDN
Raluca Ciungu
 
PPTX
DEVNET-1114 Automated Management Using SDN/NFV
Cisco DevNet
 
PPTX
SDN( Software Defined Network) and NFV(Network Function Virtualization) for I...
Sagar Rai
 
PPTX
SDN Abstractions
martin_casado
 
PPTX
Software-Defined Networking(SDN):A New Approach to Networking
Anju Ann
 
PPTX
SDN and NFV integrated OpenStack Cloud - Birds eye view on Security
Trinath Somanchi
 
PPTX
Introduction to SDN and NFV
Basim Aly (JNCIP-SP, JNCIP-ENT)
 
PDF
Introduction to Software Defined Networking (SDN)
rjain51
 
PDF
Current and Future Directions of Internet of Things
Dr. Mazlan Abbas
 
SDN_and_NFV_technologies_in_IoT_Networks
Srinivasa Addepalli
 
New NeXt for Advanced Developers
Cisco DevNet
 
Smart Citizen Kit in Barcelona, Amsterdam & Manchester
Frank Kresin
 
OpenStack and OpenDaylight, The Evolving Relationship in Cloud Networking: a ...
Cisco DevNet
 
DEVNET-1154 Open Source Presentation on Open Standards
Cisco DevNet
 
API Management for Software Defined Network (SDN)
Apigee | Google Cloud
 
DevNet Express - Spark & Tropo API - Lisbon May 2016
Cisco DevNet
 
ioT_SDN
Raluca Ciungu
 
DEVNET-1114 Automated Management Using SDN/NFV
Cisco DevNet
 
SDN( Software Defined Network) and NFV(Network Function Virtualization) for I...
Sagar Rai
 
SDN Abstractions
martin_casado
 
Software-Defined Networking(SDN):A New Approach to Networking
Anju Ann
 
SDN and NFV integrated OpenStack Cloud - Birds eye view on Security
Trinath Somanchi
 
Introduction to SDN and NFV
Basim Aly (JNCIP-SP, JNCIP-ENT)
 
Introduction to Software Defined Networking (SDN)
rjain51
 
Current and Future Directions of Internet of Things
Dr. Mazlan Abbas
 
Ad

Similar to DEVNET-1166 Open SDN Controller APIs (20)

PDF
Current & Future Use-Cases of OpenDaylight
abhijit2511
 
PDF
07 (IDNOG02) SDN Research activity in Institut Teknologi Bandung by Affan Bas...
Indonesia Network Operators Group
 
PPTX
DEVNET-1006 Getting Started with OpenDayLight
Cisco DevNet
 
PPTX
TechWiseTV Open NX-OS Workshop
Robb Boyd
 
PPTX
Show and Tell: Building Applications on Cisco Open SDN Controller
Cisco DevNet
 
PDF
Open shift and docker - october,2014
Hojoong Kim
 
PDF
SDN and metrics from the SDOs
Open Networking Summit
 
PPTX
Openstack Cactus Survey
Pjack Chen
 
PPTX
Openstack Overview
rajdeep
 
PDF
IBM Think Session 8598 Domino and JavaScript Development MasterClass
Paul Withers
 
PPT
Distributed & Highly Available server applications in Java and Scala
Max Alexejev
 
PDF
NaaS in OpenStack - CloudCamp Moscow
Ilya Alekseyev
 
ODP
Frankenstein's IDE: NetBeans and OSGi
Toni Epple
 
PDF
PLNOG16: Automatyzacja kreaowania usług operatorskich w separacji od rodzaju ...
PROIDEA
 
PDF
BuildingSDNmanageableswitch.pdf
Fernando Velez Varela
 
PDF
What_s_New_in_OpenShift_Container_Platform_4.6.pdf
chalermpany
 
PPTX
NuGet 3.0 - Transitioning from OData to JSON-LD
Jeff Handley
 
PPTX
What's New in Docker - February 2017
Patrick Chanezon
 
PPT
.NET Core Apps: Design & Development
GlobalLogic Ukraine
 
PPTX
OpenStack and OpenDaylight Workshop: ONUG Spring 2014
mestery
 
Current & Future Use-Cases of OpenDaylight
abhijit2511
 
07 (IDNOG02) SDN Research activity in Institut Teknologi Bandung by Affan Bas...
Indonesia Network Operators Group
 
DEVNET-1006 Getting Started with OpenDayLight
Cisco DevNet
 
TechWiseTV Open NX-OS Workshop
Robb Boyd
 
Show and Tell: Building Applications on Cisco Open SDN Controller
Cisco DevNet
 
Open shift and docker - october,2014
Hojoong Kim
 
SDN and metrics from the SDOs
Open Networking Summit
 
Openstack Cactus Survey
Pjack Chen
 
Openstack Overview
rajdeep
 
IBM Think Session 8598 Domino and JavaScript Development MasterClass
Paul Withers
 
Distributed & Highly Available server applications in Java and Scala
Max Alexejev
 
NaaS in OpenStack - CloudCamp Moscow
Ilya Alekseyev
 
Frankenstein's IDE: NetBeans and OSGi
Toni Epple
 
PLNOG16: Automatyzacja kreaowania usług operatorskich w separacji od rodzaju ...
PROIDEA
 
BuildingSDNmanageableswitch.pdf
Fernando Velez Varela
 
What_s_New_in_OpenShift_Container_Platform_4.6.pdf
chalermpany
 
NuGet 3.0 - Transitioning from OData to JSON-LD
Jeff Handley
 
What's New in Docker - February 2017
Patrick Chanezon
 
.NET Core Apps: Design & Development
GlobalLogic Ukraine
 
OpenStack and OpenDaylight Workshop: ONUG Spring 2014
mestery
 
Ad

More from Cisco DevNet (20)

PPTX
How to Contribute to Ansible
Cisco DevNet
 
PPTX
Rome 2017: Building advanced voice assistants and chat bots
Cisco DevNet
 
PPTX
How to Build Advanced Voice Assistants and Chatbots
Cisco DevNet
 
PPTX
Cisco Spark and Tropo and the Programmable Web
Cisco DevNet
 
PPTX
Device Programmability with Cisco Plug-n-Play Solution
Cisco DevNet
 
PPTX
Building a WiFi Hotspot with NodeJS: Cisco Meraki - ExCap API
Cisco DevNet
 
PPTX
Application Visibility and Experience through Flexible Netflow
Cisco DevNet
 
PPTX
WAN Automation Engine API Deep Dive
Cisco DevNet
 
PPTX
Cisco's Open Device Programmability Strategy: Open Discussion
Cisco DevNet
 
PPTX
Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)
Cisco DevNet
 
PPTX
NETCONF & YANG Enablement of Network Devices
Cisco DevNet
 
PPTX
UCS Management APIs A Technical Deep Dive
Cisco DevNet
 
PPTX
OpenStack Enabling DevOps
Cisco DevNet
 
PPTX
NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...
Cisco DevNet
 
PPTX
Getting Started: Developing Tropo Applications
Cisco DevNet
 
PPTX
Cisco Spark & Tropo API Workshop
Cisco DevNet
 
PPTX
Coding 102 REST API Basics Using Spark
Cisco DevNet
 
PPTX
Cisco APIs: An Interactive Assistant for the Web2Day Developer Conference
Cisco DevNet
 
PPTX
DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016
Cisco DevNet
 
PDF
Choosing PaaS: Cisco and Open Source Options: an overview
Cisco DevNet
 
How to Contribute to Ansible
Cisco DevNet
 
Rome 2017: Building advanced voice assistants and chat bots
Cisco DevNet
 
How to Build Advanced Voice Assistants and Chatbots
Cisco DevNet
 
Cisco Spark and Tropo and the Programmable Web
Cisco DevNet
 
Device Programmability with Cisco Plug-n-Play Solution
Cisco DevNet
 
Building a WiFi Hotspot with NodeJS: Cisco Meraki - ExCap API
Cisco DevNet
 
Application Visibility and Experience through Flexible Netflow
Cisco DevNet
 
WAN Automation Engine API Deep Dive
Cisco DevNet
 
Cisco's Open Device Programmability Strategy: Open Discussion
Cisco DevNet
 
Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)
Cisco DevNet
 
NETCONF & YANG Enablement of Network Devices
Cisco DevNet
 
UCS Management APIs A Technical Deep Dive
Cisco DevNet
 
OpenStack Enabling DevOps
Cisco DevNet
 
NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...
Cisco DevNet
 
Getting Started: Developing Tropo Applications
Cisco DevNet
 
Cisco Spark & Tropo API Workshop
Cisco DevNet
 
Coding 102 REST API Basics Using Spark
Cisco DevNet
 
Cisco APIs: An Interactive Assistant for the Web2Day Developer Conference
Cisco DevNet
 
DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016
Cisco DevNet
 
Choosing PaaS: Cisco and Open Source Options: an overview
Cisco DevNet
 

Recently uploaded (20)

PPTX
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
PDF
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
PPTX
Agentic AI in Healthcare Driving the Next Wave of Digital Transformation
danielle hunter
 
PDF
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
PPTX
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
PDF
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
PDF
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PPTX
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
PDF
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
PDF
The Future of Artificial Intelligence (AI)
Mukul
 
PPTX
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
PDF
RAT Builders - How to Catch Them All [DeepSec 2024]
malmoeb
 
PDF
Build with AI and GDG Cloud Bydgoszcz- ADK .pdf
jaroslawgajewski1
 
PDF
Brief History of Internet - Early Days of Internet
sutharharshit158
 
PDF
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
Agentic AI in Healthcare Driving the Next Wave of Digital Transformation
danielle hunter
 
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
The Future of Artificial Intelligence (AI)
Mukul
 
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
RAT Builders - How to Catch Them All [DeepSec 2024]
malmoeb
 
Build with AI and GDG Cloud Bydgoszcz- ADK .pdf
jaroslawgajewski1
 
Brief History of Internet - Early Days of Internet
sutharharshit158
 
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 

DEVNET-1166 Open SDN Controller APIs

  • 2. Cisco Open SDN Controller APIs Raghurama Bhat – Principal Engineer
  • 3. • Introduction • Model Driven APIs • RESTCONF • Inventory • Topology • Openflow • Demo • Developer support • Additional Resources Agenda
  • 4. The Cisco Open SDN Controller • Based on OpenDaylight Helium • Packaged as a Virtual Machine • Key MD-SAL features pre-installed • OpenFlow, NETCONF/YANG, BGP/PCEP, etc. • Integrated User Interface • Supports single-node and 3-node cluster • Limited Availability Release as of April 30th , 2015 • See the /dev/innovate pod here in DevNet A commercial distribution of the OpenDaylight SDN Controller
  • 5. • Open platform for network programmability • Enables SDN for networks at any size and scale • New “Helium” release delivers new user interface and a much simpler and customizable installation process • Users can add value at any layer (Apps, Network Services, SB Plugins) OpenDaylight Controller Cisco Contributions
  • 6. “Just for the YANG of it” • YANG is a data modeling language • Documented in RFC6020 • Designed to model NETCONF data (see RFC6241) • OpenDaylight’s MD-SAL is “Model Driven Service Abstraction Layer” • “Model” == YANG Model • OpenDaylight contains over 100 YANG models • YANG is used as our IDL • Southbound plugins described by YANG Models • NETCONF plugin learns models from connected devices at run-time Everything in MD-SAL is YANG modeled
  • 7. RESTCONF • REST protocol over HTTP • For accessing data defined in YANG • Container or List • NOT leaf or leaf-list • Using data stores defined in NETCONF • YANG Modules are listed under • /restconf/<Module> in top-level API • Data classification based on the YANG config statement • Request and response data can be in XML or JSON format. XML has structure according to yang by XML-YANG and JSON by JSON-YANG REST API Auto generated from the YANG Models
  • 8. RESTCONF • Two datastores are accessible: • Config • Data inserted by the Applications (REST Or Java) • /restconf/config/<Module>/<Xpath to Container> • Operational • State of the network elements fetched from the network • /restconf/operational/<Module>/<Xpath to Container> REST API Auto generated from the YANG Models
  • 9. RESTCONF URI 9 • It must start with <moduleName>:<nodeName> where <moduleName> is a name of the YANG module and <nodeName> is the name of the top level node in the module. • Child nodes has to be specified in format: • <nodeName> - can be used every time expect case when node with the same name was added via augmentation from external YANG model (Concretely: Module A has node A1 with child X. Module B augments node A1 by adding node X.) • <moduleName>:<nodeName> - is valid every time • <nodeName> has to be separated by / • <nodeName> can represent a data node which is of list or container YANG built-in type. If the data node is a list, there must be defined keys of the list behind the data node name for example, <nodeName>/<valueOfKey1>/<valueOfKey2>.
  • 10. OSC API Authentication scheme 10 • OSC uses a Token based authentication scheme • Issue the following request to get a token • https://{{HOST}}/controller- auth?grant_type=password&username={{user}}&password={{password}}&scope=sdn • Response: {"expires_in":86400000,"token_type":"Bearer","access_token":"a304e0f0-ad68-3d93- 8986-cd775f3b9949"} • Subsequent requests need the Basic Authorization Header of the form: "token:<token>” • Here is a fragment of Javascript to automate the process var data = JSON.parse(responseBody); postman.setGlobalVariable("token", data.access_token); var creds = btoa("token:" + data.access_token); postman.setGlobalVariable("Authorization", "Basic " + creds);
  • 11. Open SDN Controller YANG Models/APIs • Inventory • Topology • Openflow • Flow programming via Openflow Plugin RPC • Flow programming via Config Inventory • BGP • PCEP • Any Additional Plugins • Mounted NETCONF Devices REST API Auto generated from the YANG Models
  • 16. This example provides the details to program a flow that matches Ethernet packets with source MAC address 00:00:00:00:23:ae and destination MAC address 20:14:29:01:19:61 and sends them to port 2. • Headers: • Content-type: application/xml • Accept: application/xml • Authentication: admin:admin • URL: http://<controller- ip>:8181/restconf/config/opendaylight- inventory:nodes/node/{node-id}/table/{table-id}/flow/{flow- id} • Example URL: http://localhost:8181/restconf/config/opendaylight- inventory:nodes/node/openflow:1/table/0/flow/1 • Method: PUT L2 Flow Programming Sample
  • 17. This example provides the details for programming a flow that matches IP packets (ethertype 0x800) with the destination address within the 10.0.10.0/24 subnet and sends them to port 1. • Headers: • Content-type: application/xml • Accept: application/xml • Authentication: admin:admin • URL: http://<controller- ip>:8181/restconf/config/opendaylight- inventory:nodes/node/{node-id}/table/{table-id}/flow/{flow- id} • Example URL: http://localhost:8181/restconf/config/opendaylight- inventory:nodes/node/openflow:1/table/0/flow/1 • Method: PUT L3 Flow Programming Sample
  • 18. REST APIs 18 RESTCONF APIs For checking configuration and operational states List of exposed Northbound APIs available via DevNet and on platform
  • 19. JAVA APIs 19 JAVA APIs For network services creation; event listening, specifications and forming patterns SAL Binding, Common, Connector and Core APIs provided List of exposed JAVA APIs available via DevNet
  • 20. Java apps inside Cisco Open SDN Controller • The controller creates Java APIs from YANG models at run-time • YANG model maps to Java classes (class per container, list, typedef etc.) • Java APIs designed for performance • DTOs are immutable (write once/read many) • APIs are asynchronous (no need to spawn a thread to wait for each data item) • Apps packaged as Karaf features • .kar files in the controller’s “deploy” directory will auto-install
  • 21. The Tools • A text editor, preferably an IDE like IntelliJ IDEA or Eclipse • YANG – Modeling language (see RFC 6020) • Java 1.7 – Programming language • Maven >= 3.2.3 – Build tool • OSGi – technology for building modular systems • Karaf – technology for deploying and managing OSGi bundles
  • 22. Apache Karaf Container • Modular (Deploy only the features/bundles you need) • Hot Deployment • Dynamic Configuration • Powerful Extensible Shell Console + Remote Access • Native OS Integration • Logging • Security Framework • Supports any Component that can be wrapped as Jar A:bun dle B:bun dle Y:bun dle X:bun dle C:bun dle f1 f2 comm on my- features.xml
  • 23. The Service Development Process 23 YANG Model (s) Yang Tools Generated API Service Implementation Maven Build Tools Karaf Feature Definition Maven Build Tools Maven Build Tools 1 2 3 OSGi API JAR OSGi IMPL JAR Karaf KAR 4 Controller 5 • OSGi API JAR • OSGI IMPL JAR • Features.xml Generate API Deploy
  • 24. Demo
  • 25. SupportLearn / Build Validate Sell / Monetize SDK on DevNet • Getting Started Guides • Reference Guides • Code samples • Videos • Etc Integration Points • NB Rest APIs • Network Service JAVA APIs • OpenFlow 1.0 and 1.3 Interfaces • NetConf / YANG Interface • BGPLS Interface • PCEP Interface • OVSDB Interface Community and Pay-As- You Go Support Developer Sandbox Interop Validation Testing • Application Specific Test Plans • For Fee Testing • Successful IVT completion allows use of Cisco Compatible logo Solution Partner Program • Solution Marketplace listing App Store (future) • Streamlined sales and delivery of 3rd party apps (light-weight version of Solutions Plus program) Mandatory Coordinated Customer Support 3rd Party Developer Enablement (DevNet Plan) Cisco Open SDN Controller Developer Lifecycle
  • 26. Devnet Portal for Cisco Open SDN Controller developer.cisco.com/site/openSDN Documentation API Reference Guides Video Code samples Sandbox environment
  • 27. ODL/OSC Sessions in CLIVE 2015 San Diego Session ID Session Name Location Session Lead SD7 Open Flow Apps with Cisco Open SDN Controller World of Solutions Vijay Kannan, Vasanth Raghavan, Steven Carter, Rao, Hema LTRSDN-1913 Cisco Open SDN Controller Hands-on Lab 30B Upper Level: Wednesday, Jun 10, 1:00 PM - 5:00 PM Salman Asadullah, Jeff Teeter DEVNET-1166 Open SDN Controller APIs DevNet Classroom2 :Monday, Jun 8, 11:30 AM - 12:30 PM Raghurama Bhat DEVNET-2005 Using the Cisco Open SDN Controller RESTCONF APIs DevNet Classroom 1 Tuesday, Jun 9, 4:00 PM - 5:00 PM Giles Heron PCSSOL-1052 Software Defined Matrix Switching Wednesday, Jun 10, 5:30 PM - 5:45 PM– Solution Theater East David Chandler - Practice Manager Enterperise Network Solutions, WWT DEVNET-1164 Using OpenDaylight for Notification Driven Workflows DevNet Classroom 2: Thursday, Jun 11, 1:30 PM Andrew McLachlan DEVNET-1175 OpenDaylight Service Function Chaining Thursday, Jun 11, 1:30 PM - 2:00 PM– DevNet Classroom 2 Paul Quinn DEVNET-1152 OpenDaylight YANG Model Overview and Tools Tuesday, Jun 9, 9:00 AM - 10:00 AM Juraj, Giles, Bimal DEVNET-1162 OPNFV – The Foundation for Running Your Virtual Network Functions DevNet Classroom 2: Thursday, Jun 11, 12:30 PM - 1:00 PM Frank Brockners DEVNET-2017 Service Chaining for SDN/NFV - State of the Stack Devnet Theater: Tuesday, Jun 9, 4:00 PM - 4:30 PM Uri Elzur, Intel Corp DEVNET-1153 Enterprise Application to Infrastructure Integration – SDN Apps Monday, Jun 8, 2:30 PM - 3:00 PM Vasanth Raghavan TECMPL-3200 SDN WAN Orchestration Principles and Solution 15B Mezz: Sunday, Jun 7, 1:00 PM - 5:00 PM Chris Metz, Josh Peters PSOSDN-2005 Group Based Policy: Consistent Network Policy 23C Upper Level: Thursday, Jun 11, 1:00 PM - 2:00 PM Sanjay Agarwal BRKSDN-2761 OpenDaylight: The Open Source SDN Controller Platform 16B Mezz: Monday, Jun 8, 10:00 AM - 12:00 PM Ed Warnecke DEVNET-1006 Getting Started with OpenDayLight DevNet Classroom 1:Wednesday, Jun 10, 2:30 PM - 3:30 PM Giles Heron, Charles Eckel DEVNET-1174 OpenDaylight Apps Development Panel DevNet Theater:Monday, Jun 8, 12:00 PM - 1:00 PM Giles, Chris, Niklas, Bimal, Juraj TECNMS-2009 - NETCONF/YANG Modeling 17AB Mezz: Sunday, Jun 7, 8:00 AM - 12:00 PMT Mike, Giles, Jan, Juraj

Editor's Notes

  • #6: Background info on ODL