blob: b7203ba98dc21344480e38f1dfacfee9f7b270a0 [file] [log] [blame]
Alex Stancu5819a222019-11-13 13:58:45 +02001.. This work is licensed under a Creative Commons Attribution 4.0 International License.
2.. SPDX-License-Identifier: CC-BY-4.0
Alex Stancub4dd14f2019-11-14 17:54:13 +02003.. Copyright (C) 2019 highstreet technologies GmbH and others
Alex Stancu5819a222019-11-13 13:58:45 +02004
5
6sim/o1-interface Overview
7==========================
8
Alex Stancub4dd14f2019-11-14 17:54:13 +02009The O1-interface simulator is based on the Network Topology Simulator (NTS). NTS is a framework that allows simulating devices that expose a management interface through a NETCONF/YANG interface. The NTS is loaded with the YANG files associated with the O-RAN O1 interface specifications.
Alex Stancu5819a222019-11-13 13:58:45 +020010
11The NETCONF/YANG management interface is simulated, and the O1 YANG models are loaded by the framework to be exposed. Random data is generated based on the specific models, such that each simulated device presents different data on its management interface.
12
13The NTS Manager can be used to specify the simulation details and to manage the simulation environment at runtime.
14
15The NTS framework is based on several open-source projects:
Alex Stancub4dd14f2019-11-14 17:54:13 +020016
17* `Netopeer2 <https://github.com/CESNET/Netopeer2>`_
18
19* `libnetconf2 <https://github.com/CESNET/libnetconf2>`_
20
21* `libyang <https://github.com/CESNET/libyang>`_
22
23* `sysrepo <https://github.com/sysrepo/sysrepo>`_ - all of these are used for the implementation of the NETCONF Server, both in the NTS Manager and in each simulated device
24
25* `cJSON <https://github.com/DaveGamble/cJSON>`_ - used to create the JSON payloads for talking with the simulation framework
26
27* `pyang <https://github.com/mbj4668/pyang>`_ - used to create random data from the YANG models that are exposed
Alex Stancu5819a222019-11-13 13:58:45 +020028
29Each simulated device is represented as a docker container, where the NETCONF Server is running. The creation and deletion of docker containers associated with simulated devices is handled by the NTS Manager. The NTS Manager is also running as a docker container and exposes a NETCONF/YANG interface to control the simulation.