aboutsummaryrefslogtreecommitdiffstats
path: root/docs/simulators/nf_simulator.rst
blob: f13b769618fe5e2e54e77169886098045cdd8671 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
.. This work is licensed under a Creative Commons Attribution 4.0
International License. http://creativecommons.org/licenses/by/4.0

.. _nf_simulator:

:orphan:

NF Simulator
============

Description
-----------
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.

|image1|

**Figure 1. Architecture Overview**

NF Simulator code is stored in https://github.com/onap/integration-simulators-nf-simulator and all it's sub repos are:

* for VES Client - https://github.com/onap/integration-simulators-nf-simulator-ves-client
* for Netconf Server - https://github.com/onap/integration-simulators-nf-simulator-netconf-server
* for AVCN Manager - https://github.com/onap/integration-simulators-nf-simulator-avcn-manager
* for PM HTTPS Server - https://github.com/onap/integration-simulators-nf-simulator-pm-https-server

For above components have been prepared:

* docker images in ONAP Nexus:

    *  VES Client image - nexus3.onap.org:10001/onap/org.onap.integration.nfsimulator.vesclient
    *  AVCN Manager image - nexus3.onap.org:10001/onap/org.onap.integration.nfsimulator.avcnmanager
    *  PM HTTPS Server image - nexus3.onap.org:10001/onap/org.onap.integration.nfsimulator.pmhttpsserver
    *  Netconf Server images - nexus3.onap.org:10001/onap/org.onap.integration.nfsimulator.netconfserver

* example helm charts:

    * `Helm charts <https://github.com/onap/integration-simulators-nf-simulator/tree/master/helm>`_

**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:
--------------

   Application that generates VES events on demand.

   **What does it do?**

   * Supports both basic auth and TLS CMPv2 method of authentication.
   * Allows to turn on and turn off hostname, verification in SSL.
   * Allows to send one-time event and periodic events, based on event templates.
   * Exposes API to manage VES Client
   * Provides 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 supports 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:
------------------

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

   **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:
----------------

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

   **What does it do?**

   The manager processes 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:
-------------------

   Server that is used in Bulk PM usecases over HTTPS

   **What does it do?**

   * Supports TLS (CMPv2) method of authentication (used during connection to Data File Collector)
   * Allows to use custom certificates
   * Exposes REST API in order to manage PM files stored in HTTPS server


Guides
======

User And Developer Guide
------------------------
User guides:

- `VES Client user guide. <https://github.com/onap/integration-simulators-nf-simulator-ves-client/blob/master/README.md>`_
- `AVCN Manager user guide. <https://github.com/onap/integration-simulators-nf-simulator-avcn-manager/blob/master/README.md>`_
- `PM HTTPS Server user guide. <https://github.com/onap/integration-simulators-nf-simulator-pm-https-server/blob/master/README.md>`_
- `Netconf Server user guide. <https://github.com/onap/integration-simulators-nf-simulator-netconf-server/blob/master/README.md>`_
- `Netconf Notification Application user guide. <https://github.com/onap/integration-simulators-nf-simulator-netconf-server/blob/master/src/python/README.md>`_
- `NF Simulator CLI user guide <https://github.com/onap/integration-simulators-nf-simulator/blob/master/simulator-cli/README.md>`_

Jenkins builds:

* `VES Client jenkins builds <https://jenkins.onap.org/view/integration-simulators-nf-simulator-avcn-manager/>`_
* `AVCN Manager jenkins builds <https://jenkins.onap.org/view/integration-simulators-nf-simulator-netconf-server/>`_
* `PM HTTPS Server jenkins builds <https://jenkins.onap.org/view/integration-simulators-nf-simulator-pm-https-server/>`_
* `Netconf Server jenkins builds <https://jenkins.onap.org/view/integration-simulators-nf-simulator-ves-client/>`_

NF Simulator CSIT test cases:

* `Project integration-simulators-nf-simulator-netconf-server-master-verify-csit-testsuites <https://jenkins.onap.org/view/integration-simulators-nf-simulator-netconf-server/job/integration-simulators-nf-simulator-netconf-server-master-verify-csit-testsuites/>`_
* `Project integration-simulators-nf-simulator-netconf-server-master-csit-testsuites <https://jenkins.onap.org/view/integration-simulators-nf-simulator-netconf-server/job/integration-simulators-nf-simulator-netconf-server-master-csit-testsuites/>`_

NF Simulator sanity checks:

* https://github.com/onap/integration-simulators-nf-simulator/tree/master/sanitycheck

.. |image1| image:: ../files/simulators/NF-Simulator.png
   :width: 10in