Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

YANG and NETCONF

This activity aims at development of various YANG and NETCONF tools allowing us to have full remote control on devices and software we develop. We develop the complete stack of the necessary tools from YANG parser and NETCONF transport library to a modular NETCONF server and various NETCONF clients.

libyang

liyang is YANG parser implemented and provided as a library with API in C language. It allows you to load and validate both, the YANG schemas and data. The schemas are supported in YANG as well in YIN format and data are supported in XML and JSON representation. The source codes are available from GitHub.

libnetconf

libnetconf is supposed to serve as a generic NETCONF library in C intended for building NETCONF clients and servers. It provides all necessary functions implementing a communication between a client and a server via NETCONF protocol.

The original libnetconf is based on libxml2 and its source codes are available from GitHub. Currently, we are working on development of libnetconf2, based on libyang library instead of libxml2. It rapidly improves perfomance characteristics – increases the processing speed and decreases memory consumption. libnetconf2 is also available at GitHub.

Netopeer Server

The goal of a Netopeer server is to provide a generic NETCONF framework that will allow network device developers to apply configuration changes to their devices without any knowledge of the NETCONF protocol.

The architecture of a Netopeer server consists of a core, which is connected with specific device control modules. The core deals with general NETCONF functionality such as NETCONF session management or the control of NETCONF startup and the candidate datastores. Device control modules are dynamically loadable modules used to control a specific device. These modules are responsible only for applying required configuration changes on the managed devices. Netopeer server is available from its GitHub page.

Netopeer Client

The goal of a Netopeer client is to create an Apache web server module providing NETCONF functionality. The other part of Netopeer client will be able to generate a simple web user interface according to the device configuration data model. For NETCONF controlled devices the configuration data models are provided in the YANG format, which is developed by IETF’s NETMOD working group. Following such a configuration data model, the user prepares any configuration changes of the specific device and will then be able to pass their request from the web interface via a Netopeer Apache module to a NETCONF server and the operated device.

Netopeer2

Based on libyang and libnetconf2, there is also the second generation of the Netopeer project. In contrast to the first generation, it uses sysrepo as a standalone datastore for storing configuration data. The mechanism of device specific modules was preserved, but the API was changed and moved directly into the sysrepo datastore.

Netopeer2GUI

As a last piece of puzzle we develop web-based NETCONF user interface to manage NETCONF devices. Netopeer2GUI is written as Angular5 frontend with Flask (Python3) backend providing connectivity to NETCONF devices. Besides manipulation with the device configuration data, the application is supposed also to provide NETCONF Notifications, allow user to browse through the YANG schemas or serve as a server for NETCONF Call Home. Another interesting feature is an API to create schema-specific modules to provide specialized interface to perform specific configuration changes in more user friendly way. Netopeer2GUI is available from its GitHub page.

More Information and Links