C NETCONF library
libnetconf is a NETCONF library in C intended for building NETCONF clients
and servers. It provides basic functions to connect NETCONF client and server
to each other via SSH, to send and receive NETCONF messages and to store and
work with the configuration data in a datastore.
With the experiences from libnetconf, we have moved our activities to
work on next generation of this library based on libyang
library. libnetconf2
is mature enough to be used as a replacement of the original libnetconf. Therefore, the
libnetconf is no more developed neither maintained. Note, that while libnetconf2 does not
include NETCONF datastore implementation, this particular functionality can be implemented
via sysrepo project. Similarly, the NETCONF server/client
implementation Netopeer is deprecated and replaced by Netopeer2 which can be also used as a reference tool using libnetconf2
functions.
libnetconf was developed by the Tools for
Monitoring and Configuration department of
CESNET. It implements the NETCONF protocol introduced by IETF -
more information about NETCONF protocol can be found at
NETCONF WG.
libnetconf‘s API documentation including a description of its use is available
here (Python API
is available here).
Documentation can be also built from source codes:
$ make doc
Instructions to compile the libnetconf library can be found in INSTALL file.
Informations about differencies to the previous version can be found in [RELEASE_NOTES]
(./RELEASE_NOTES) document or compatibility reports.
In November 2012, prior to the IETF 85 meeting, libnetconf was one of the
NETCONF protocol implementation participating in NETCONF Interoperability Testing.
libnetconf comes from the Netopeer project. The first version of Netopeer was
implemented in 2007 as a bachelor thesis at Masaryk university (available only
czech). Further work on the project was
covered by CESNET, z.s.p.o., Czech National Research and Education Network (NREN)
operator and in 2009 released as an open source project at GoogleCode.
Further development led to splitting the original Netopeer applications and
creating a separate library implementing NETCONF functionality. The libnetconf
library was detached as a standalone project in 2012. For some time, the
Netopeer server was developed internally
at CESNET to control specific CESNET devices.
In 2013, the Netopeer project was restarted.
Currently it contains an advanced NETCONF server developed at CESNET with several
transAPI modules covering basic configuration of the Linux server. Furthermore, it
also contains a command line interface that came from the libnetconf, where it was
used as example application. The Netopeer web client
is available separately at GitHub.
In June 2015, the project was moved to GitHub because of GoogleCode shutdown.
In 2016 we have moved our activity to libyang
and libnetconf2. The tools became mature
in 2017 so the original libnetconf is no more maintained from that time.