../_images/logo.png

Introduction

../_images/yumapro_tools.png

Refer to the YumaPro User Manual for a complete introduction to YumaPro Tools.

This section focuses on the client and server tools within the YumaPro Tools programs.

Intended Audience

This document is intended for users of the YumaPro Client and Server package programs. It covers the basic usage of the yangcli-pro client application and the netconfd-pro server.

What is NETCONF and YANG?

The YumaPro Tools suite provides automated support for development and usage of network management information. Information is exchanged in XML encoding within a session between a client and a server.

The "Network Configuration Protocol" (NETCONF) is defined in RFC 6241. It is used to provide the management sessions, operations, and database framework available on the server.

The operations, notifications, and the database contents supported by a particular NETCONF server are extensible, and defined with a modular and easy-to-learn language called YANG (RFC 7950). The database is used to contain YANG data structures which represent the configuration of the device containing the NETCONF server.

YANG is used to define the syntax and semantics of the NETCONF operations, notification events, and database content. Machine and human readable semantics and constraints are used by YANG tools (including YumaPro Tools) to automate behavior within the NETCONF protocol for clients and servers.

How Does an Operator Use NETCONF and YANG?

An operator uses a NETCONF session almost like it was a CLI session, except there are structured, schema-defined requests and responses, encoded in XML. YANG modules are like MIB modules for hierarchical content.

The NETCONF protocol is available for SSH and TLS transports. Using NETCONF over SSH is just like using CLI over SSH to manage a networking device, except the messages are exchanged in XML, not plain-text.

NETCONF is designed to provide a programmatic interface, so it is usually used with a management application, instead of a direct SSH terminal application. The yangcli-pro program within YumaPro Tools is a YANG-driven NETCONF client application that supports scripts, XPath, and many automated features to simplify management of NETCONF servers.

Once a session is started, similar to a CLI session, the operator issues commands (NETCONF operations) to the server, and the server performs each requested operation in order, and returns a status message and/or some data to the client.

How Does a Developer Use NETCONF and YANG?

A NETCONF server developer decides what modules need to be supported by the NETCONF server, and implements the device instrumentation code for those modules.

Much of the NETCONF protocol related code is handled by the NETCONF stack, based on the YANG module contents. Therefore, the most important task for a developer is designing a good YANG module.

After the YANG module is written, the yangdump-pro program can be used to generate the template C code for the server instrumentation library for the YANG module. The device instrumentation code for the YANG module is then added by the developer. This 'callback code' is invoked by the server when database operation requests for the object(s) in the YANG module are received from a client.

Once this library is completed, the YANG module and its binary server instrumentation library (SIL) can be loaded into the NETCONF server at boot-time or run-time.

Once the YANG module is completed, it needs be published, so operators and application developers can use the module information to manage the server.

Using the YumaPro Doxygen Browser

It is strongly recommended that developers use the supplied doxygen HTML documentation to learn the YumaPro APIs and access additional technical support resources. Doxygen is supported both online and can also be generated on a local machine if an SDK package or source code package is installed.

The SIL and SIL-SA code generated by yangdump-pro now has built-in doxygen browser support.

Refer the the YumaPro Doxygen Browser section for more details.