A Guide to NETCONF and YANG Solutions

An Integrated NETCONF, CLI, SNMP and Web / RESTCONF Agent Architecture

NuDesign produces software development 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 Next Generation Agent architecture embraces YANG; it implements YANG Datastore Server, and integrates it with NETCONF & other management protocols, such as SNMP, to provide access to the YANG Datastore via 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 using NuDesign’s YANG Datastore Server Builder Studio. Then, adding NuDesign’s protocol Access Agent(s) converts the YANG Datastore Server into a full feature NETCONF, CLI, SNMP and / or RESTCONF multiprotocol management Agent.

An Overview of NETCONF, CLI, SNMP and Web / RESTCONF Agent Development Tools

The aim of NuDesign’s development tools is to provide YANG / MIB management Data Model Builders, an extensible YANG Datastore Server Master and SDK libraries, YANG / MIB extension Agent Code Generation tools and Access Agents (AA’s) for NETCONF, CLI, SNMPv3 and RESTCONF software management interfaces.

Using these tools the developer first builds a YANG data model (or uses an existing one), possibly initially converting the existing SNMP MIB(s) into the YANG documents, while enhancing them with the additional constructs and a structure better expressing the native features of the device being managed, also to make them more aligned with the desired CLI access.

Then, using NuDesign’s YANG Datastore Server Builder, a C++ project is generated for the YANG Datastore Server extensions, Loadable Data Handlers (LDH), with nodes derived from the YANG modules. By default the Agent’s Datastore is empty; it becomes populated via configuration initialization and later by the on-going management actions.

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

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, full Management Agent entity. The process requires inclusion of AA’s support code and configuration files, auto-generated by the supporting tools.

The following tools, SDK development libraries, Access Agents, and plug-in components are supported:

  • YANG Datastore Server Studio – it contains: the YANG Datastore Server Builder, a PYANG plug-in, C++ code generator of Loadable Data Handlers (LDH) for YANG rfc6020 modules; extensible YANG Datastore Server Master & NETCONF / YANG Datastore SDK libraries that along with custom objects instrumentation code provide a complete YANG Datastore Server with APIs to the Datastore & protocol Access Agents. The SDK contains basic CLI access for operational & configuration aspects of the system. Multiple, dynamically loadable LDH extensions configurations is 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 management agent solution exposing synchronized NETCONF, CLI, SNMPv3 and / or Web interfaces to existing and future, corporate network provisioning and management applications.