SlideShare a Scribd company logo
DEVNET-1152	OpenDaylight YANG Model Overview and Tools
OpenDaylight YANG
model Overview
Giles Heron – Principal Engineer
Why NETCONF/YANG - Informational RFC 3535
• SNMP had failed
• For configuration, that is
• Extensive use in fault handling and
monitoring
• CLI scripting
• “Market share” 70%+
Abstract
This document provides an overview of a
workshop held by the Internet Architecture Board
(IAB) on Network Management. The workshop
was hosted by CNRI in Reston, VA, USA from
June 4 thru June 6, 2002. The goal of the
workshop was to continue the important dialog
started between network operators and
protocol developers, and to guide the IETFs
focus on future work regarding network
management.
configuration
NETCONF and YANG in Context
NETCONF
Manager
NETCONF
Yang
Models
YANG ModelsYANG Models
YANG Models
YANG Models
Management
Applications
What is a Data-Model? What is a Network
Management Protocol?
• Data-Model
• A data-model explicitly and precisely determines the
structure, syntax and semantics of the data…
• …that is externally visible
• Consistent and complete
• Protocol
• Remote primitives to view and manipulate the data
• Encoding of the data as defined by the data-model
Data-Model
Protocol
Confusion and Comparison
• Data-Models and information Models
• Information models are for humans
• Not everything
• Not always detailed and precise
• Starting-point for data-model
• Protocol
• Confusion between domain-specific network management
protocols and general RPC mechanisms
• NETCONF vs. CORBA, SOAP, REST, …
Data-Model
MIB Modules
YANG Modules
Protocol
The SNMP Protocol
NETCONF
What is YANG?
• YANG – Yet Another Next-Generation...
• ... Communication Protocol?
• ... Messaging Bus?
• ... Management Information Definition Language!
• Purpose
• Define management information for Netconf...
• ... Original focus on configuration information, but not restricted to it
• ... Can be separated from Netconf
(not a goal of the specification, but an important aspect)
YANG and XML
• YANG assumes an XML encoding of instantiated information
• Defines XML rendering rules
• Relies on XML encoding for certain advanced features (e.g. expression of constraints
using Xpath)
• Facilitates describing XML document hierarchies
• Nicely aligned with NETCONF 
• YANG itself is not XML
• Emphasis on readability
• Familiar structure to C/C++ or Java programmers
• XML notation exists: YIN (Yang-Independent Notation)
• Semantic equivalence
• Syntactic conversions YANG <-> YIN
• Alternative encodings defined (e.g. JSON for RESTconf)
YANG compared to SNMP
Definition language:
YANG
Information model:
YANG modules
Instantiated data:
XML
Transport:
Netconf
Definition language:
SMIv2
Information model:
MIB modules
Instantiated data:
ASN.1 BER
Transport:
SNMP
“Content”
“Payload”
“Framework”
Compare SNMP
Import conversion rules exist
(MIBs  YANG)
“instant content”
Ability to express hierarchy
(compare MIBs: flat + tables)
Richer conditions, constraints
Facilities for easier reuse
RPC/Action support
Human readability
Dynamic extensibility
B2B, Web toolkits
Bulk vs only incremental ops
(manipulation of config files,
e.g. edit-config)
Transaction support
Configuration vs monitoringor possibly other
(no inherent dependency but
will require different bindings)
YANG in the context of Netconf
Transport
Remote
Operations
Mgmt
Services
Mgmt info
(payload)
Mgmt info
(definition)
XML-encoded content
YANG modules
Netconf operations
<edit-config>, <get-config>, <get>
Netconf RPC
<rpc>, <rpc-reply>
TLS, SSH
Manager
(client)
XML
content
per
YANG
Conceptual
Data
Store
Agent
(server)
YANG
• Data modeling language
• Configuration data
• State data
• Tree structure
• Data and Types
acme-box module
properties container
interfaces container
name: string, config
name: string, config
interface: list, key = name
oper-state: enum, config
RESTCONF
• ReSTful protocol to access YANG defined data
• Remote State Transfer, i.e. server maintains no session state
• HTTL URLs reflect data hierarchy in a YANG-modelled datastore
RESTCONF Netconf
GET <get-config>, <get>
POST <edit-config> (“create”)
PUT <edit-config> (“replace”)
PATCH <edit-config> (“merge”)
DELETE <edit-config> (“delete”)
OPTIONS (discover supported operations)
HEAD (get without body)
Resource URI Map
/restconf
/config
/<top-level-data-nodes> (configuration data)
/operational
/<top-level-data-nodes> (operational data)
/modules
/module
/name
/revision
/namespace
/feature
/deviation
/operations
/<custom protocol operations>
/streams
/stream
/name
/description
/replay-support
/replay-log-creation-time
/events
/version (field)
Event streams,
subscribe using “get”,
can specify filters
Meta-information:
Capabilities etc
Meta-information:
Supported RPCs
YANG-
defined
data
ODL
Transport
Remote
Operations
Mgmt
Services
Mgmt info
(encoding)
Mgmt info
(definition)
XML-encoded
content
YANG modules
NETCONF
operations
XML
RPC
TLS,
SSH
JSON
JAVA
DTO
I2RS
?
HTTP
RESTCONF
TCP
YANG - NETCONF, RESTCONF, I2RS & IDL
Controller
YANG IDL – OpenDaylight MD-SAL
MD-SAL
DOM BrokerBA-BI Connector
Mapping Service
Codec Registry
Schema Service
Codec Generator
Binding-Aware
Broker Data Store
Binding-Aware to Binding-Independent Data Translation
Binding-Aware Plugin
Binding-Independent
Plugin/Client
(NETCONF/RESTCONF)
Forwarding Rules Manager,
Stats Manager, BGP-LS/PCEP
RESTCONF Clients
Internal Clients
YANG
Models
Mounting Remote Datastores
OpenDaylight Controller Config
MD-SAL
NETCONF
NETCONF
• Mounted under e.g. http://localhost:8181/restconf/config/opendaylight-
inventory:nodes/node/controller-config
• Data can be accessed using …/yang-ext:mount/…
• …/yang-ext:mount/config:modules is used to configure the various plug-ins
Config Store
RESTCONF
Mounting Remote Datastores
OpenDaylight NETCONF Node “Discovery”
MD-SAL
NETCONF
RESTCONF
Node Inventory
• Nodes added by POSTing to config:modules
• ODL connects to each node
• ODL learns capabilities (YANG modules) and stores to model cache
• Cache at ~/cache/schema. Filenames of form yang-model@2015-06-07.yang.
Model Cache
XR1 XR2 OpenWRT
Mounting Remote Datastores
OpenDaylight NETCONF Node Configuration
MD-SAL
NETCONF
RESTCONF
Node Inventory
• Nodes configured by POSTing or PUTting to e.g.:
• http://localhost:8181/restconf/config/opendaylight-inventory:nodes/node/XR2/yang-
ext:mount/Cisco-IOS-XR-ifmgr-cfg:interface-configurations/interface-
configuration/act/Loopback0/
• Can retrieve config (or operational stats) using GET
Model Cache
XR1 XR2 OpenWRT
Thank you
DEVNET-1152	OpenDaylight YANG Model Overview and Tools

More Related Content

PPTX
DEVNET-1006 Getting Started with OpenDayLight
Cisco DevNet
 
PPTX
OpenFlow Switch Management using NETCONF and YANG
Tail-f Systems
 
PPTX
A 30-minute Introduction to NETCONF and YANG
Tail-f Systems
 
PPTX
Module 2: Why NETCONF and YANG
Tail-f Systems
 
PPTX
Dynamic Service Configuration and Automated Network Configuration with NETCON...
Tail-f Systems
 
PDF
Introduction to YANG data models and their use in OpenDaylight: an overview
Cisco DevNet
 
PPTX
Getting started with YANG
CoreStack
 
PDF
Tail-f Webinar OpenFlow Switch Management Using NETCONF and YANG
Tail-f Systems
 
DEVNET-1006 Getting Started with OpenDayLight
Cisco DevNet
 
OpenFlow Switch Management using NETCONF and YANG
Tail-f Systems
 
A 30-minute Introduction to NETCONF and YANG
Tail-f Systems
 
Module 2: Why NETCONF and YANG
Tail-f Systems
 
Dynamic Service Configuration and Automated Network Configuration with NETCON...
Tail-f Systems
 
Introduction to YANG data models and their use in OpenDaylight: an overview
Cisco DevNet
 
Getting started with YANG
CoreStack
 
Tail-f Webinar OpenFlow Switch Management Using NETCONF and YANG
Tail-f Systems
 

What's hot (20)

PPTX
Tail f - Why ConfD
Tail-f Systems
 
PDF
Yang in OpenDaylight
Gunjan Patel
 
PPTX
Module 3: NETCONF and YANG Concepts
Tail-f Systems
 
PPTX
DEVNET-2005 Using the Cisco Open SDN Controller RESTCONF APIs
Cisco DevNet
 
PPTX
Tail-f - Why NETCONF
Tail-f Systems
 
PPTX
Module 4: NETCONF Tutorial
Tail-f Systems
 
PDF
Webinar: Applying REST to Network Management – An Implementor’s View
Tail-f Systems
 
PDF
Dynamic Service Chaining
Tail-f Systems
 
PPTX
Learning netconf yang from scratch
Telematika Open Session
 
PDF
netconf, restconf, grpc_basic
Gyewan An
 
PPTX
Module 1: ConfD Technical Introduction
Tail-f Systems
 
PPTX
Module 6: YANG Tutorial - part 2
Tail-f Systems
 
PPTX
OpenDaylight and YANG
CoreStack
 
PDF
Introduction to Data Models & Cisco's NextGen Device Level APIs: an overview
Cisco DevNet
 
PPTX
NETCONF & YANG Enablement of Network Devices
Cisco DevNet
 
PPTX
Introduction to Beryllium release of OpenDaylight
SDN Hub
 
PPTX
Module 9: CDB Technical Intro
Tail-f Systems
 
PPTX
NETCONF YANG tutorial
Tail-f Systems
 
PDF
Service Chaining overview (English) 2015/10/05
Kentaro Ebisawa
 
PDF
SDN and metrics from the SDOs
Open Networking Summit
 
Tail f - Why ConfD
Tail-f Systems
 
Yang in OpenDaylight
Gunjan Patel
 
Module 3: NETCONF and YANG Concepts
Tail-f Systems
 
DEVNET-2005 Using the Cisco Open SDN Controller RESTCONF APIs
Cisco DevNet
 
Tail-f - Why NETCONF
Tail-f Systems
 
Module 4: NETCONF Tutorial
Tail-f Systems
 
Webinar: Applying REST to Network Management – An Implementor’s View
Tail-f Systems
 
Dynamic Service Chaining
Tail-f Systems
 
Learning netconf yang from scratch
Telematika Open Session
 
netconf, restconf, grpc_basic
Gyewan An
 
Module 1: ConfD Technical Introduction
Tail-f Systems
 
Module 6: YANG Tutorial - part 2
Tail-f Systems
 
OpenDaylight and YANG
CoreStack
 
Introduction to Data Models & Cisco's NextGen Device Level APIs: an overview
Cisco DevNet
 
NETCONF & YANG Enablement of Network Devices
Cisco DevNet
 
Introduction to Beryllium release of OpenDaylight
SDN Hub
 
Module 9: CDB Technical Intro
Tail-f Systems
 
NETCONF YANG tutorial
Tail-f Systems
 
Service Chaining overview (English) 2015/10/05
Kentaro Ebisawa
 
SDN and metrics from the SDOs
Open Networking Summit
 
Ad

Viewers also liked (8)

PPTX
Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)
Cisco DevNet
 
ODP
NETCONF & YANG
Konrad Ferdinand Heimel
 
PPTX
Customizing Sunstone Provisioning and Admin Portal - Daniel Molina
OpenNebula Project
 
PPTX
Opendaylight SDN Controller
Sumit Arora
 
PPT
GuíA Para Trabajar El Desarrollo De Competencias BáSicas
Carmen Gonzalez
 
PPT
Assignment week #1
CoachKeegan
 
PDF
Flare - tech-intro-for-paris-hackathon
Cisco DevNet
 
PPT
Model model pembelajaran
Lailin Luthfiana
 
Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)
Cisco DevNet
 
NETCONF & YANG
Konrad Ferdinand Heimel
 
Customizing Sunstone Provisioning and Admin Portal - Daniel Molina
OpenNebula Project
 
Opendaylight SDN Controller
Sumit Arora
 
GuíA Para Trabajar El Desarrollo De Competencias BáSicas
Carmen Gonzalez
 
Assignment week #1
CoachKeegan
 
Flare - tech-intro-for-paris-hackathon
Cisco DevNet
 
Model model pembelajaran
Lailin Luthfiana
 
Ad

Similar to DEVNET-1152 OpenDaylight YANG Model Overview and Tools (20)

PDF
Bringing SDN to the Management Plane
Anees Shaikh
 
PPTX
(ATS3-DEV04) Introduction to Pipeline Pilot Protocol Development for Developers
BIOVIA
 
PDF
Presenter manual embedded systems (specially for summer interns)
XPERT INFOTECH
 
PDF
Addressing Network Operator Challenges in YANG push Data Mesh Integration
ThomasGraf42
 
PDF
InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...
InfluxData
 
PDF
Extending SDN beyond the control plane
Anees Shaikh
 
PDF
Cisco Connect Toronto 2018 model-driven programmability for cisco ios xr-v1
Cisco Canada
 
PDF
Software Innovations and Control Plane Evolution in the new SDN Transport Arc...
Cisco Canada
 
PPTX
SDN, OpenFlow, NFV, and Virtual Network
Tim4PreStartup
 
PDF
MACHBASE_NEO
MACHBASE
 
PPTX
SDN Unit 6.pptxhgvgyubnjhuihjhgijhnkjhijnik
jagrutibhere8208
 
PPTX
What is new in .NET 4.5
Robert MacLean
 
PPTX
Tamir Dresher - DotNet 7 What's new.pptx
Tamir Dresher
 
PPTX
Fyp presentation 2 (SQL Converter)
Muhammad Shafiq
 
PDF
Spark SQL In Depth www.syedacademy.com
Syed Hadoop
 
PPTX
ietf115-network-telemetry-data-mesh-challenges.pptx
ThomasGraf40
 
PDF
Using Netconf/Yang with OpenDalight
Глеб Хохлов
 
ODP
The Adventure: BlackRay as a Storage Engine
fschupp
 
PDF
70487.pdf
Karen Benoit
 
PPT
EAD Revision, EAC-CPF introduction
timothyryan50
 
Bringing SDN to the Management Plane
Anees Shaikh
 
(ATS3-DEV04) Introduction to Pipeline Pilot Protocol Development for Developers
BIOVIA
 
Presenter manual embedded systems (specially for summer interns)
XPERT INFOTECH
 
Addressing Network Operator Challenges in YANG push Data Mesh Integration
ThomasGraf42
 
InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...
InfluxData
 
Extending SDN beyond the control plane
Anees Shaikh
 
Cisco Connect Toronto 2018 model-driven programmability for cisco ios xr-v1
Cisco Canada
 
Software Innovations and Control Plane Evolution in the new SDN Transport Arc...
Cisco Canada
 
SDN, OpenFlow, NFV, and Virtual Network
Tim4PreStartup
 
MACHBASE_NEO
MACHBASE
 
SDN Unit 6.pptxhgvgyubnjhuihjhgijhnkjhijnik
jagrutibhere8208
 
What is new in .NET 4.5
Robert MacLean
 
Tamir Dresher - DotNet 7 What's new.pptx
Tamir Dresher
 
Fyp presentation 2 (SQL Converter)
Muhammad Shafiq
 
Spark SQL In Depth www.syedacademy.com
Syed Hadoop
 
ietf115-network-telemetry-data-mesh-challenges.pptx
ThomasGraf40
 
Using Netconf/Yang with OpenDalight
Глеб Хохлов
 
The Adventure: BlackRay as a Storage Engine
fschupp
 
70487.pdf
Karen Benoit
 
EAD Revision, EAC-CPF introduction
timothyryan50
 

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
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 Express - Spark & Tropo API - Lisbon May 2016
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
 
PDF
Doing Business with Tropo
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
 
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 Express - Spark & Tropo API - Lisbon May 2016
Cisco DevNet
 
DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016
Cisco DevNet
 
Choosing PaaS: Cisco and Open Source Options: an overview
Cisco DevNet
 
Doing Business with Tropo
Cisco DevNet
 

Recently uploaded (20)

PDF
CIFDAQ'S Market Insight: BTC to ETH money in motion
CIFDAQ
 
PDF
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
PDF
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
PDF
REPORT: Heating appliances market in Poland 2024
SPIUG
 
PDF
Chapter 2 Digital Image Fundamentals.pdf
Getnet Tigabie Askale -(GM)
 
PDF
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
PDF
Event Presentation Google Cloud Next Extended 2025
minhtrietgect
 
PDF
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
PPT
L2 Rules of Netiquette in Empowerment technology
Archibal2
 
PDF
BLW VOCATIONAL TRAINING SUMMER INTERNSHIP REPORT
codernjn73
 
PDF
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
PDF
Revolutionize Operations with Intelligent IoT Monitoring and Control
Rejig Digital
 
PDF
A Day in the Life of Location Data - Turning Where into How.pdf
Precisely
 
PPTX
Stamford - Community User Group Leaders_ Agentblazer Status, AI Sustainabilit...
Amol Dixit
 
PDF
Best ERP System for Manufacturing in India | Elite Mindz
Elite Mindz
 
PDF
Building High-Performance Oracle Teams: Strategic Staffing for Database Manag...
SMACT Works
 
PDF
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PDF
Software Development Methodologies in 2025
KodekX
 
CIFDAQ'S Market Insight: BTC to ETH money in motion
CIFDAQ
 
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
REPORT: Heating appliances market in Poland 2024
SPIUG
 
Chapter 2 Digital Image Fundamentals.pdf
Getnet Tigabie Askale -(GM)
 
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
Event Presentation Google Cloud Next Extended 2025
minhtrietgect
 
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
L2 Rules of Netiquette in Empowerment technology
Archibal2
 
BLW VOCATIONAL TRAINING SUMMER INTERNSHIP REPORT
codernjn73
 
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
Revolutionize Operations with Intelligent IoT Monitoring and Control
Rejig Digital
 
A Day in the Life of Location Data - Turning Where into How.pdf
Precisely
 
Stamford - Community User Group Leaders_ Agentblazer Status, AI Sustainabilit...
Amol Dixit
 
Best ERP System for Manufacturing in India | Elite Mindz
Elite Mindz
 
Building High-Performance Oracle Teams: Strategic Staffing for Database Manag...
SMACT Works
 
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
Software Development Methodologies in 2025
KodekX
 

DEVNET-1152 OpenDaylight YANG Model Overview and Tools

  • 2. OpenDaylight YANG model Overview Giles Heron – Principal Engineer
  • 3. Why NETCONF/YANG - Informational RFC 3535 • SNMP had failed • For configuration, that is • Extensive use in fault handling and monitoring • CLI scripting • “Market share” 70%+ Abstract This document provides an overview of a workshop held by the Internet Architecture Board (IAB) on Network Management. The workshop was hosted by CNRI in Reston, VA, USA from June 4 thru June 6, 2002. The goal of the workshop was to continue the important dialog started between network operators and protocol developers, and to guide the IETFs focus on future work regarding network management. configuration
  • 4. NETCONF and YANG in Context NETCONF Manager NETCONF Yang Models YANG ModelsYANG Models YANG Models YANG Models Management Applications
  • 5. What is a Data-Model? What is a Network Management Protocol? • Data-Model • A data-model explicitly and precisely determines the structure, syntax and semantics of the data… • …that is externally visible • Consistent and complete • Protocol • Remote primitives to view and manipulate the data • Encoding of the data as defined by the data-model Data-Model Protocol
  • 6. Confusion and Comparison • Data-Models and information Models • Information models are for humans • Not everything • Not always detailed and precise • Starting-point for data-model • Protocol • Confusion between domain-specific network management protocols and general RPC mechanisms • NETCONF vs. CORBA, SOAP, REST, … Data-Model MIB Modules YANG Modules Protocol The SNMP Protocol NETCONF
  • 7. What is YANG? • YANG – Yet Another Next-Generation... • ... Communication Protocol? • ... Messaging Bus? • ... Management Information Definition Language! • Purpose • Define management information for Netconf... • ... Original focus on configuration information, but not restricted to it • ... Can be separated from Netconf (not a goal of the specification, but an important aspect)
  • 8. YANG and XML • YANG assumes an XML encoding of instantiated information • Defines XML rendering rules • Relies on XML encoding for certain advanced features (e.g. expression of constraints using Xpath) • Facilitates describing XML document hierarchies • Nicely aligned with NETCONF  • YANG itself is not XML • Emphasis on readability • Familiar structure to C/C++ or Java programmers • XML notation exists: YIN (Yang-Independent Notation) • Semantic equivalence • Syntactic conversions YANG <-> YIN • Alternative encodings defined (e.g. JSON for RESTconf)
  • 9. YANG compared to SNMP Definition language: YANG Information model: YANG modules Instantiated data: XML Transport: Netconf Definition language: SMIv2 Information model: MIB modules Instantiated data: ASN.1 BER Transport: SNMP “Content” “Payload” “Framework” Compare SNMP Import conversion rules exist (MIBs  YANG) “instant content” Ability to express hierarchy (compare MIBs: flat + tables) Richer conditions, constraints Facilities for easier reuse RPC/Action support Human readability Dynamic extensibility B2B, Web toolkits Bulk vs only incremental ops (manipulation of config files, e.g. edit-config) Transaction support Configuration vs monitoringor possibly other (no inherent dependency but will require different bindings)
  • 10. YANG in the context of Netconf Transport Remote Operations Mgmt Services Mgmt info (payload) Mgmt info (definition) XML-encoded content YANG modules Netconf operations <edit-config>, <get-config>, <get> Netconf RPC <rpc>, <rpc-reply> TLS, SSH Manager (client) XML content per YANG Conceptual Data Store Agent (server)
  • 11. YANG • Data modeling language • Configuration data • State data • Tree structure • Data and Types acme-box module properties container interfaces container name: string, config name: string, config interface: list, key = name oper-state: enum, config
  • 12. RESTCONF • ReSTful protocol to access YANG defined data • Remote State Transfer, i.e. server maintains no session state • HTTL URLs reflect data hierarchy in a YANG-modelled datastore RESTCONF Netconf GET <get-config>, <get> POST <edit-config> (“create”) PUT <edit-config> (“replace”) PATCH <edit-config> (“merge”) DELETE <edit-config> (“delete”) OPTIONS (discover supported operations) HEAD (get without body)
  • 13. Resource URI Map /restconf /config /<top-level-data-nodes> (configuration data) /operational /<top-level-data-nodes> (operational data) /modules /module /name /revision /namespace /feature /deviation /operations /<custom protocol operations> /streams /stream /name /description /replay-support /replay-log-creation-time /events /version (field) Event streams, subscribe using “get”, can specify filters Meta-information: Capabilities etc Meta-information: Supported RPCs YANG- defined data
  • 14. ODL Transport Remote Operations Mgmt Services Mgmt info (encoding) Mgmt info (definition) XML-encoded content YANG modules NETCONF operations XML RPC TLS, SSH JSON JAVA DTO I2RS ? HTTP RESTCONF TCP YANG - NETCONF, RESTCONF, I2RS & IDL
  • 15. Controller YANG IDL – OpenDaylight MD-SAL MD-SAL DOM BrokerBA-BI Connector Mapping Service Codec Registry Schema Service Codec Generator Binding-Aware Broker Data Store Binding-Aware to Binding-Independent Data Translation Binding-Aware Plugin Binding-Independent Plugin/Client (NETCONF/RESTCONF) Forwarding Rules Manager, Stats Manager, BGP-LS/PCEP RESTCONF Clients Internal Clients YANG Models
  • 16. Mounting Remote Datastores OpenDaylight Controller Config MD-SAL NETCONF NETCONF • Mounted under e.g. http://localhost:8181/restconf/config/opendaylight- inventory:nodes/node/controller-config • Data can be accessed using …/yang-ext:mount/… • …/yang-ext:mount/config:modules is used to configure the various plug-ins Config Store RESTCONF
  • 17. Mounting Remote Datastores OpenDaylight NETCONF Node “Discovery” MD-SAL NETCONF RESTCONF Node Inventory • Nodes added by POSTing to config:modules • ODL connects to each node • ODL learns capabilities (YANG modules) and stores to model cache • Cache at ~/cache/schema. Filenames of form [email protected]. Model Cache XR1 XR2 OpenWRT
  • 18. Mounting Remote Datastores OpenDaylight NETCONF Node Configuration MD-SAL NETCONF RESTCONF Node Inventory • Nodes configured by POSTing or PUTting to e.g.: • http://localhost:8181/restconf/config/opendaylight-inventory:nodes/node/XR2/yang- ext:mount/Cisco-IOS-XR-ifmgr-cfg:interface-configurations/interface- configuration/act/Loopback0/ • Can retrieve config (or operational stats) using GET Model Cache XR1 XR2 OpenWRT