A Guide to NETCONF and YANG Solutions

ndCONF, an Integrated NETCONF, CLI, SNMP and Web / RESTCONF
Agent Architecture

download ndCONF Eval Agent Development Package

NuDesign provides ndCONF Agent Development Studio tools and libraries that are compliant with the IETF’s network configuration protocol called NETCONF (rfc6241) and its associated data modeling language called YANG (rfc6020). YANG is used to describe the device characteristics: operations, notifications, configuration and state data models while NETCONF provides a protocol to remotely manipulate configurations and retrieve operational data from the device.

NuDesign’s ndCONF Agent architecture embraces YANG; it implements an extensible YANG Datastore Server, and integrates it with NETCONF & other management protocols, such as SNMP, to provide access to the YANG Datastore objects via the protocol specific Access Agents.

The top level multiprotocol agent architecture is depicted on a diagram below. The YANG Datastore Server implements data templates defined by the YANG documents while multiple Access Agents provide protocol specific access to the datastore models and their instrumentation.

The developer builds the YANG Datastore Server’s extensions using NuDesign’s ndCONF Builder, a C++ code generator of YANG Datastore Server object providers. Finally, adding NuDesign’s protocol Access Agent(s) to the YANG Datastore Server completes build of a full feature NETCONF, CLI, SNMP and / or RESTCONF multiprotocol ndCONF management Agent.

An Overview of ndCONF Agent Development Studio Tools

The aim of NuDesign’s ndCONF Agent development tools is to provide YANG / MIB Agent code generation tools, NETCONF / YANG Datastore SDK libraries, YANG & MIB data model builders, and protocol Access Agents for NETCONF, CLI, RESTCONF and SNMPv3 software management interfaces.

Using these tools the developer first builds a YANG data model (or uses an existing one), possibly auto-converting existing SNMP MIBs into the rfc6643 compliant YANG modules, then optionally modifying them to better express the native features of the device being managed and provide a more “CLI centric” data model.

Then, using NuDesign’s ndCONF Builder, a C++ code generator of YANG Datastore Server object providers, a Loadable Data Handler extension project is generated, with nodes derived from the YANG module. By default the Agent’s Datastore is empty; it becomes populated via configuration initialization and later by the on-going management actions.

The required YANG module handlers are created, added and registered with the DataTemplate. The ndCONF Builder also provides for customer’s callback functions to enable incorporation of user code in the automatically generated code. The resulting YANG Datastore Server supports multiple Loadable Data Handler extensions configuration.

Access to object instrumentation is performed via one or more protocol Access Agents (AA’s). The addition of specific protocol AA’s to the core YANG Datastore Server results in creation of a specific management and configuration ndCONF Agent entity. The process requires inclusion of AA’s support code and configuration files, auto-generated by the supporting tools.

The following tools and components are provided in NuDesign’s ndCONF Agent Development Studio:

  • ndCONF Builder – a Linux / PYANG hosted plug-in, C++ source code and project generator of YANG Datastore Server Loadable Data Handler extensions for YANG rfc6020 modules.
  • ndCONF SDK – a complete management agent development platform containing: extensible YANG Datastore Server, NETCONF / YANG Datastore SDK libs with APIs to YANG Datastore object providers, APIs to protocol Access Agents, samples and support tools. It contains basic CLI Access to operational & configuration aspects of the system. Multiple, dynamically Loadable Data Handler extensions are supported.
  • NETCONF Access Agent – this Access Agent, along with YANG Datastore Server implements the IETF’s Network Configuration protocol described in rfc6241 (NETCONF Protocol), rfc6242 (NETCONF over SSH), rfc6022 (NETCONF Monitoring), rfc6021 (YANG and INET Data Types), rfc5277 (NETCONF Event Notifications), rfc6470 (NETCONF Base Notifications) and rfc6536 (NETCONF Access Control) modules.
  • SNMPv3 Access Agent – this Access Agent provides a full implementation of the IETF’s SNMPv3 standard, including rfc7407 (YANG Data Model for SNMP Configuration). It provides SNMP access capability to the YANG Datastore via the “MIB view”, enabled for those YANG modules that also have corresponding MIB documents defined. The support for existing NuDesign or AgentX Subagents is provided.
  • CLI Access Agent – this Access Agent implements a sophisticated, multi-user CLI interface constructed using provided tools and SDK libraries. It supports extensible Cisco and Juniper like operational and configuration modes, allowing for modifications of existing and additions of new commands. The Agent supports multiple CLI clients – one CLI server architecture.
  • RESTCONF Access Agent – this Access Agents enable REST-like or web GUI access to the YANG Datastore Server, via system’s embedded web server and fastCGI interface. The developers add dynamic content to their custom applications using well known web application technologies.

An automatically generated and developer instrumented YANG Datastore Server can be deployed with any combination of protocol specific Access Agents supplied by NuDesign, providing an OEM device with a well integrated ndCONF Agent solution exposing synchronized NETCONF, CLI, SNMPv3 and / or Web / RESTCONF interfaces to existing and future, corporate network provisioning and management applications.