YANG Datastore Server Builder Studio
download free eval of a combined NETCONF, CLI & SNMPv3 Agent Generation Package
The YANG Datastore Server Builder Studio is used in building of YANG Datastore Server which together with selection of specific Access Agents: NETCONF and / or SNMPv3, CLI and RESTCONF make up a complete, integrated, multiprotocol Management Agent providing access to the YANG based management information via any of the above protocols. The Studio contains the following components:
- YANG Datastore Server Builder, a Linux hosted development tool, installable as a Python / PYANG plug-in and providing the following features:
- for user selected YANG modules the Server Builder generates C++ Loadable Data Handler (LDH) extension sources, including stubs for user instrumentation code, data templates and project files.
- An extensible YANG Datastore Server Master, supporting multiple, dynamically loadable LDH extension modules configurations.
- a basic CLI interface derived from the configuration objects of the YANG modules.
- for MIB OID annotated YANG modules the Server 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.
- YANG / NETCONF 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 Loadable Data Handler extensions.
- YANG Datastore Server and Access Agents Configuration File Templates for Linux host.
- mib_2_xml compiler tool, it 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
- YANG module is created, using an open source or commercially available YANG editor.
To enable SNMP access as well, these additional files are required:
- an SNMP MIB module, with MIB object definitions using some or all objects that are defined in the YANG model.
- a compiled MIB module, MIB.xml, providing MIB object’s SMI properties.
- a MIB OID mapping file, MIB_2_YANG.xml, that binds the MIB OIDs to the appropriate leafs of a YANG module.
- Alternatively, a developer starts from an existing MIB module and using NuDesign’s 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.
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.
YANG Datastore Agent Build Process
The current release of NuDesign NETCONF / YANG Agent development tools supports Linux and QNX targets and is hosted in a Linux environment, the development process has been tested on Fedora 23 & 24 and Ubuntu Linux, all 64bit distributions.
You will need the following components installed on your Linux host:
- Python / PYANG development environment.
- NuDesign components:
- YANG Datastore Server Builder package. It contains pre-built, extensible YANG Datastore Server Master and code generator with SDK libraries required to built Loadable Data Handler (LDH) extensions for custom YANG modules.
- Access Agent (like NETCONF AA and / or others)
- Client Application for testing (like NETCONF Client)
The Agent generation evaluation package is simplified, providing for developer to first get a working NETCONF / CLI / SNMPv3 Agent with YANG Datastore Server Master and prebuilt demo Garage.so extension (for included Garage.mib and Garage.yang modules), then providing pre-generated source code for user to build and add to the Agent a second Loadable Data Handler extension, VLAN.so, based on a supplied VLAN.mib and VLAN.yang modules.
Finally, to complete your evaluation, provide NuDesign with your custom YANG / MIB sample modules, and we will generate the source code and support files, using NuDesign’s YANG Datastore Server Builder, for you to compile and build your custom extension *.so library and add it to the extensible YANG Datastore Server Master thus creating a complete NETCONF / CLI / (optionally) SNMPv3 Agent for further testing (it will have pre-stubbed instrumentation for your objects).
The YANG Datastore Server Builder supports generation of YANG Datastore Server Master with multiple dynamically loadable LDH extension configurations.
For more details please review the following documents: