A session in the DevNet Zone at Cisco Live, Berlin. YANG is a data modeling language defining device and service configuration and operations. This session will describe what YANG is (with examples), and its relationship to and how it is used in OpenDaylight. Several tools making it easier for the application developer to work with YANG will be discussed. It will conclude with a demonstration of YANGUI and YANG Visualizer, two new OpenDaylight applications that auto-generate a user interface and directed graph respectively, both based on selected YANG models.
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. Cost and
complexity ā¢ No well-defined protocols and
data-models
ā¢ Lack of atomicity
ā¢ Ordering problem
NETCONF
Manager
OSS
NMS
EMS
Implications of RFC3535 ā Legacy Situation
6. 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
8. Controller
MD-SAL Details
MD-SAL
Data StoreDOM BrokerBA-BI Connector
Mapping Service
Codec Registry
Schema Service
Codec Generator
Binding-Aware
Broker
Binding-Aware to Binding-Independent Data Translation
Binding-Aware Plugin
Binding-Independent
Plugin/Client
(Netconf/Restconf)
Forwarding Rules Manager,
Stats Manager, BGP-LS/PCEP
External Clients
9. Building a Plugin/Application
Model
Model
Yang Model
Java API Definition
Java API DefinitionGenerated API
Definition
Module
Implementations
Yang Tools
āPluginā
OSGI Bundle
1
4
Generate APIs
Create Plugin Bundle
Deploy
Maven
Build Tools
Module
ImplementationsPlugin source code
āAPIā
OSGI Bundle
Maven
Build Tools
2
3
Create API Bundle
4
Deploy
Controller
10. Mounting YANG 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
11. Mounting YANG 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
12. Mounting YANG 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