Netopeer Portal

Welcome to the Netopeer portal providing information about Netopeer - the NETCONF toolset. Netopeer is a group of FOSS projects funded by CESNET. Below you can found information about all the related YANG and NETCONF projects. With any feedback or question, please feel free to join us via the project's Github pages.

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.

Generated documentation of the library is available for the master as well as for the devel branch.

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 libnetconf2, which is based on libyang instead of libxml2. It rapidly improves perfomance characteristics, but on the other hand, some parts of the library (datastore implementation, NETCONF Events storage and NETCONF Access Control) were moved into the Netopeer2 server and sysrepo. libnetconf2 is available at GitHub.

Generated documentation of the libnetconf2 library is available for the master as well as for the devel branch.

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.

Netopeer GUI

Already based on libyang and libnetconf2, Netopeer GUI provides generic user interface for any NETCONF capable device. The project source codes are available from GitHub.