Skip to content

DETERMINISTIC6G/netconf-for-inet

Repository files navigation

NETCONF for INET

NETCONF for INET is an extension to the INET-Framework, which can be considered the standard model library for the OMNeT++ discrete event simulator. It extends INET's TsnSwitch module with a NETCONF configuration interface. Furthermore, it facilitates the integration of an external Centralized Network Controller (CNC) by introducing a dummy CNC module capable of forwarding NETCONF traffic from an to the external CNC. The project was created as part of a master thesis by Matthias Tompert.

The implemented NETCONF server interface is currently capable of configuring Time-Aware Shaping (TAS) and, in particular, the Gate Control Lists (GCLs) defined in the IEEE standard 802.1Q-2022. Furthermore, there is basic support for the Link Layer Discovery Protocol (LLDP) as defined in the IEEE standard 802.1AB-2016.

Acknowledgments

The NETCONF for INET extension was originally developed by Matthias Tompert in his Masters's thesis at University of Stuttgart in the context of the DETERMINISTIC6G project, which has received funding from the European Union's Horizon Europe research and innovation programme under grant agreement No. 101096504.

DETERMINISTIC6G Project Website.

DETERMINISTIC6G e-mail: coordinator@deterministic6g.eu

Requirements

The extension is based on INET version 4.5.4.

For the NETCONF server implementation, some additional external libraries are required:

  • libnetconf2 to handle the lower NETCONF protocol layers.
  • sysrepo as a YANG datastore implementation.
  • libyang for working with YANG modules.

All these libraries can be installed system-wide using the instructions in their GIT repositories.

CNC Bridge Server

The dummy CNC module does not directly communicate with the external CNC for a number of reasons. Rather, it communicates with an additional external component, designated the CNC Bridge Server. This component then communicates with the external CNC. Please refer to the README file in the CNC Bridge Server directory for more information on the installation and usage of the CNC Bridge Server.

Alternative Netopeer2 Backend

There is also an alternative server implementation that is based on the Netopeer2 NETCONF server. For this backend, the libssh2 library is additionally required.

Like the aforementioned libraries, Netopeer2 can be installed system-wide from its GIT repository. As this project does not depend on a global sysrepo datastore, Netopeer2 can be installed without setting up this datastore using the following commands:

mkdir build; cd build
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
cmake -DSYSREPO_SETUP=OFF ..
make
sudo make install

We utilize the currently latest versions of all dependencies:

Versions of Some Additional Recursive Dependencies:

  • Linux Kernel: 6.10.2
  • cmake: 3.30.1
  • GNU make: 4.4.1
  • GNU gdb: 14.2 (the currently latest version 15.1 does not work with the used OMNeT++/INET versions see: inet-framework/inet#982)

License

The main parts of this software is licensed under the GNU LESSER GENERAL PUBLIC LICENSE Version 3.

The RpcHandler.cc is slightly modified code from netopeer2 and is licensed under the BSD-3-Clause license provided in the file directly.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published