NF Simulator


An idea behind NF (Network Function) Simulator is to introduce simulator, which supports ORAN defined O1 interface (reporting of NF events to Service Management Orchestrators). Within the use-case, it is expected, that an NF configuration change, happening due to multiple reasons (network mechanism triggered change - e.g. discovery of neighbours) is reported to the network management system, using ONAP`s VES REST events. The simulator is expected to cover planned NF behaviour - receive the config change via a NetConf protocol and report that change (also potentially other related changes) to the network management system using ONAP`s VES event.


Figure 1. Architecture Overview

  1. NF Simulator code is stored in and all it’s sub repos are:

  2. For above components have been prepared:

    • docker images in ONAP Nexus:

      • VES Client image -

      • AVCN Manager image -

      • PM HTTPS Server image -

      • Netconf Server images -

    • example helm charts:

VES Client, Netconf Server and PM HTTPS Server can be used and deployed separately depending on needs.

Only AVCN Manger connects VES Client with Netconf Server in order to support O1 interface.

1. VES Client:

  1. Purpose of VES Client

    Application that generates VES events on demand.

  2. What does it do?

    • Support both basic auth and TLS CMPv2 method of authentication.

    • Allow to turn on and turn off hostname, verification in SSL.

    • Allow to send one-time event and periodic events, based on event templates.

    • Expose API to manage VES Client

    • Provide template mechanism (Template is a draft event. Merging event with patch will result in valid VES event. Template itself should be a correct VES event as well as valid json object. )

    • Patching - User is able to provide patch in request, which will be merged into template.

    • Simulator support corresponding keywords in templates: RandomInteger(start,end), RandomPrimitiveInteger(start,end), RandomInteger, RandomString(length), RandomString, Timestamp, TimestampPrimitive, Increment

    • In place variables support - Simulator supports dynamic keywords e.g. #dN to automatically substitute selected phrases in defined json schema.

    • Logging - Every start of simulator will generate new logs that can be found in docker ves-client container.

    • Swagger - Detailed view of simulator REST API is available via Swagger UI

    • History - User is able to view events history.

2. Netconf Server:

  1. Purpose of Netconf Server

    This server uses sysrepo to simulate network configuration. It is based on sysrepo-netopeer2 image.

  2. What does it do?

    Server allows to:

    • Install custom configuration models on start up.

    • Change configuration of that modules on runtime.

    • Use TLS custom certificates

    • Configure change subscription for particular YANG modules (Netconf server image run python application on the startup.)

    • Manage netconf server using REST interface, with endpoints:

      • GET /healthcheck returns 200 “UP” if server is up and running

      • POST /readiness return 200 “Ready” if server is ready, if not, returns 503 “Not Ready”

      • POST /change_config/<path:module_name> changes configuration ad returns 202 “Accepted”

      • GET /change_history returns 200 and change history as json

      • GET /get_config/<path:module_name> returns 200 and current configuration

3. AVCN Manager:

  1. Purpose of AVCN Manager

    Manager that fetch changes of configuration from kafka and sends them to VES client.

  2. What does it do?

    The manager process notifications from NETCONF server. It does this by being a subscriber of a Kafka topic that is fed with NETCONF notifications. Incoming notifications are then processed and output of this processing is sent to VES client.

4. PM HTTPS Server:

  1. Purpose of PM HTTPS Server

    Server that is used in Bulk PM usecase over HTTPS

  2. What does it do?

    • Support TLS (CMPv2) method of authentication (used during connection to Data File Collector)

    • Allow to use custom certificates

    • Expose REST API in order to manage PM files stored in HTTPS server


User And Developer Guide

  1. User guides:

  2. Jenkins builds:

  3. NF Simulator CSIT test cases:

  4. NF Simulator sanity checks: