show and tell: building applications on cisco open sdn controller
TRANSCRIPT
DevNet @
DevNet @
Building Applications on Cisco Open SDN Controller
DevNet 1012
Giles Heron – Principal Engineer
© 2014 Cisco and/or its affiliates. All rights reserved.Presentation_ID Cisco Public DevNet @
Agenda
• The Cisco Open SDN Controller
• “Just for the YANG of it”
• Creating Java apps inside the Cisco Open SDN Controller
• Creating RESTCONF apps using the Cisco Open SDN Controller
• Q&A
© 2014 Cisco and/or its affiliates. All rights reserved.Presentation_ID Cisco Public DevNet @
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
• In EFT as of last week
• See the /dev/innovate pod here in DevNet
A commercial distribution of the OpenDaylight SDN Controller
© 2014 Cisco and/or its affiliates. All rights reserved.Presentation_ID Cisco Public DevNet @
• 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
© 2014 Cisco and/or its affiliates. All rights reserved.Presentation_ID Cisco Public DevNet @
Open SDN Controller 1.0 Release Content
Community SupportCisco Supported
“HELIUM”Open SDN Controller
Common Content Incremental Cisco
Value Precluded
OpenDaylight
Content
SDNi
Defense4all
PacketCable
PCMM
VTN Project
OpenContrail
Plugin
SNMP4SDN
AAA
BGPCEP
Controller
DLUX
Group Policy
L2 Switch
LISP Flow
Mapping
Openflow
Plugin
OVSDB
Secure Network
Bootstrap InfraService
Function
Chaining
Yang Tools
MD-SAL
AD-SAL
Log Aggregation
Metrics
Aggregation
MonitoringBasic
Clustering
Centralized
Admin
OVA Distribution
Samples
One Click Clustering
© 2014 Cisco and/or its affiliates. All rights reserved.Presentation_ID Cisco Public DevNet @
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
© 2014 Cisco and/or its affiliates. All rights reserved.Presentation_ID Cisco Public DevNet @
“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
© 2014 Cisco and/or its affiliates. All rights reserved.Presentation_ID Cisco Public 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
© 2014 Cisco and/or its affiliates. All rights reserved.Presentation_ID Cisco Public DevNet @
Auto-Populating NCS inventory from BGP-LS Topology
MPLS-TE Network
MD-SAL
BGP-LS
LinkstateTopology
RESTCONF
BGP-LS TopologyExporter
BGP-LS RIB
NETCONF
NCS Inventory Creator
BGP-LS
© 2014 Cisco and/or its affiliates. All rights reserved.Presentation_ID Cisco Public DevNet @
Tunnel Programming API using NCS via NETCONF/YANG
MPLS-TE Network
MD-SALLSP Config
App
RESTCONF
IOS-XR NED
PostMan Collection
CLI (over ssh)
Tunnel Programming API
NETCONF
© 2014 Cisco and/or its affiliates. All rights reserved.Presentation_ID Cisco Public DevNet @
RESTCONF apps using Cisco Open SDN Controller
• The controller generates RESTCONF APIs from YANG models at run-time
– YANG model structure maps to RESTCONF URLs
– HTTP GET to read data, POST/PUT/DELETE to write, POST to run RPCs
• RESTCONF supports both XML and JSON
– Most devs prefer JSON (native to JavaScript, super-easy from Python etc.)
• Performance is lower than Java APIs due to serialisation, context switches etc.
• Examples:
– /restconf/config/opendaylight-inventory:nodes
– …nodes/node/foo/yang-ext:mount/model:container
– /restconf/operational/network-topology:network-topology
– /restconf/operations/coffee-maker:make-coffee
© 2014 Cisco and/or its affiliates. All rights reserved.Presentation_ID Cisco Public DevNet @
• Copy to be supplied by Cisco.
Complete Your Online Session Evaluation
Thank you.
DevNet @
Join us on DevNet at developer.cisco.com
Follow DevNet on Twitter: @ciscodevnet