ndCONF Builder & ndCONF SDK Libraries
download ndCONF Eval Agent Development Package
The ndCONF Builder generates code of YANG Datastore Server extensions which together with the Server and selection of specific Access Agents: NETCONF, CLI, RESTCONF and / or SNMPv3 make up a complete, integrated, multiprotocol ndCONF Agent providing access to the YANG based management information via the selected access protocols.
The ndCONF development tools contains the following components:
- ndCONF Builder, a Linux hosted development tool, installable as a Python / PYANG plug-in and providing the following service:
- for user selected YANG modules the ndCONF Builder generates C++ Loadable Data Handlers (LDH), YANG Datastore Server extension sources, including stubs for user instrumentation code, data templates and project files.
- for MIB OID annotated YANG modules the ndCONF Builder generates the MIB_2_YANG.xml OID mapping file that binds the MIB objects to the appropriate leafs of a YANG module, required for optional SNMP access.
- ndCONF SDK libraries
- NETCONF / YANG SDK development libraries containing C++ source code for pre-selected embedded environment, implementing NETCONF / YANG standard RFCs, APIs to protocol Access Agents and APIs to custom LDH Server extensions.
- An extensible YANG Datastore Server, supporting multiple, dynamically loadable LDH extensions configurations.
- a basic CLI interface derived from the configuration objects of the YANG modules.
- mib_2_xml compiler tool that converts MIB module into a MIB.xml file required for optional SNMP access.
Development starts with creation of YANG modules (and the MIB modules if SNMP access is desired). Where YANG modeled management objects overlap with MIB objects, they share the same instrumentation code.
The Object Model Scenarios – YANG (optionally MIB) module creation
- A YANG module is created, using an open source or commercially available YANG editor.
To optionally enable SNMP access to the YANG objects, these additional files are required:
- an SNMP MIB module, with MIB object definitions using objects defined in the YANG model. While creating such MIB module, a MIB OID annotation directive should be added to YANG module’s object definition.
- a compiled MIB module, MIB.xml, provides MIB object’s SMI properties, created by mib_2_xml tool.
- a MIB OID mapping file, MIB_2_YANG.xml, that binds the MIB OIDs to the appropriate leafs of a YANG module. Auto created by ndCONF Builder for MIB OID annotated YANG modules.
- Alternatively, a developer starts from an existing MIB module and using NuDesign’s Visual MIBuilder tool, auto-translates it into the equivalent YANG module (an rfc6643 compliant process), possibly enhancing it with the additional constructs and a structure better aligned to the desired CLI access.
The MIBuilder automatically adds the MIB OID annotations to the YANG module created in the translation process. The ndCONF Builder generates the MIB_2_YANG.xml OID mapping file using the embedded OID annotations. A compiled MIB file, MIB.xml, needs to be created using the provided mib_2_xml compiler tool.
To enable SNMP access with this approach the MIB OID annotations are added to the YANG module by the MIBuilder tool, and the YANG Datastore Server Builder generates the MIB_2_YANG.xml OID mapping file automatically. A compiled MIB file, MIB.xml, needs to be created using the provided mib_2_xml compiler tool.
This second approach is often desired by organizations with a large base of existing SNMP instrumentation code, since it provides for re-use of this code in the instrumentation phase of YANG Datastore Server.
ndCONF Agent Build Process
The current release of NuDesign NETCONF / YANG ndCONF Agent development tools supports Linux and QNX targets and is hosted in a Linux environment, the development process has been tested on Fedora 23 – 27, Debian 9.3, Ubuntu 16.04, 17.01, and OpenSUSE Tumbleweed Linux, all 64bit distributions.
You will need the following components installed on your Linux host:
- Python / PYANG development environment.
- NuDesign ndCONF Agent Development Studio package:
- contains ndCONF Builder, code generator of YANG Datastore Server extensions, YANG module’s object handlers.
- extensible YANG Datastore Server.
- NETCONF / YANG ndCONF SDK libraries required to built YANG Datastore Server extensions for custom YANG modules.
- Access Agent (like NETCONF AA and / or others).
- Client Application for testing (like NETCONF Client).
The ndCONF Agent generation evaluation package provides for developer to get a working NETCONF / CLI / SNMPv3 Agent using an extensible YANG Datastore Server and sample extensions, ndGarage.so and VLAN.so Loadable Data Handlers, that are to be built by the user based on supplied YANG, MIB modules and pre-generated source code and project files.
To complete your specific evaluation, provide NuDesign with your custom YANG / MIB sample modules, and we will generate the source code and support files, using NuDesign’s ndCONF Builder, for you to compile and build your custom extension *.so library that when added to the extensible YANG Datastore Server creates a complete NETCONF / CLI / (optionally) SNMPv3 Agent for further testing (the Agent will have initial, sample configuration for your objects).
The ndCONF Builder generated extensions and the YANG Datastore Server support configurations with multiple, dynamically loadable extensions.
For more details please review the following documents: