Posts Tagged ‘NetConf’

Five Ws

  • Who is about it? IETF (Internet Engineering Task Force)
  • What happened? IETF defined a data modeling language for NETCONF  protocol for managing equipment  configuration.
  • When did it take place? SInce 2002 ( RFC 3535  – Overview of the 2002 IASB Network Managemenet Workshop)
  • Where did it take place? IETF
  • Why did it happen? In response Shortcomings of SNMP/SMI network configuration management (lack of backup-restore support, element configuration, transactions – single or multibox) …


NETCONF, network management protocol desined to support mnagement of configuration including:

  • Distinction between configuration and state data
  • Multiple configuration data stores (candidate, running, startup)
  • Configuration change validations
  • Configuration change transactions
  • Selective data retrieval and filtering
  • Streaming and playback of event notifications
  • Extensible remote procedure call mechanism

YANG is a data modeling language designed to write data models for NETCONF protocol, with following features: 

  • Human readable
  • Hierarchical data model configuration
  • Resuable types and groupings (structured types)
  • Extensibility through augmentation mechanims
  • Support definitions of opertaions (RPCs)
  • Formal constratints for configuration validation
  • Data modularity through modules and submodules
  • Well defined versioning rules

NETCONF Layering

NETCONF Operations

  • <get-config>: retrieve all or part of a configuration from a data store;
  • <get>: retrieve running configuration and device state information;
  • <edit-config>: loads all  or part of a specified configuration to the specified target configuration;
  • <copy-config>: create or replace an entire configuration datastore with the contentes of anothert complete configuration datastore;
  • <delete-config>: delete  a configuration datastore (Not applicable to running)
  • <lock>: locks a device;
  • <unlock>: unlocks a device;
  • <close_session>: graceful session termination;
  • <kill-session>: forced session termination.

YANG Features

  • maps directly to NETCONF (XML) content;
  • Compact C/Java syntax focused on readability;
  • Data type system compatible with next-gen SNMP type system, XML and XSD;
  • Translatable do DSDL, RelaxNG(!), Schematron and DSRL… (RFC 6110);
  • Informal translation to  W3C XML Schema (Pyang, Jyang?);
  • Organization
    • Leaf, leaf-list, container, lists, grouping, choice
  • Data model structure
    • Module, submodule, augment, if-feature, when
  • Constraints
    • must, unique, min-elements, max-elements, mandatory
  • Data types
    • many built-in, sub-typing, restrictions
  • Reusable groupings
    • Grouping, uses

YANG example

 module acme-sytem {

  namespace "";

  prefix "acme";

  organization "ACME Inc.";

  contact "";


    "The module for entities implementing the ACME system.";

  revision 2007-11-05 {

    description "Initial revision.";


  container system {

      leaf host-name {

        type string;

        description "Hostname for this system";


      list interface {

        key "name";

        description "List of interfaces in the system";

        leaf name {

          type string;


        leaf type {

          type string;


        leaf mtu {

          type int32;





NETCONF Open Source

YANG Open Source

A Layered Comparison

Data Models MIBs Modules  
Data Modeling Language SMI YANG  
Management Operations SNMP NETCONF  
Transport Stack UDP