Simulators
Simulators are regularly created for use cases. The goal of this section is to:
Highlight the existing Simulators
Provide recommendations when starting developing a new simulator
Important
Before developing a new simulator, check that it does not exist…and refactor/contribute to existing simulators rather than recreating new ones.
Existing simulators
Name |
Description |
Link |
Contacts |
---|---|---|---|
NF Simulator |
Evolution of the pnf simulator, the Network service simulator |
K.Kuzmicki |
|
A1 Policy Enforcement Simulator |
Simulator that supports the A1-P OSC_2.1.0 interface and also provides internal API to manage the RAN elements (Cells, Ues) and allows to customize and send VES Events |
Krystian Kędroń |
|
Mass PNF Simulator |
Mimic the PNF for benchmark purposes |
Tamas Bakai |
|
Ran simulator |
RAN-SIM is a Radio Access Network Simulator, it is used to simulate the various functionalities of an eNodeB |
Priyadharshini B |
|
DC simulator |
Data Center simulator |
Xin Miao |
Recommendations
The simulator code
We recommend to create a dedicated repository (ask Integration team).
Repository |
Description |
Link |
---|---|---|
integration/simulators/5G-core-nf-simulator |
5G core nf simulator |
|
integration/simulators/A1-policy-enforcement-simulator |
A1 Policy Enforcement Simulator |
|
integration/simulators/core-nssmf-simulator |
Core NSSMF Simulator |
|
integration/simulators/nf-simulator |
NF simulator |
|
integration/simulators/nf-simulator/avcn-manager |
NF simulator avcn manager |
|
integration/simulators/nf-simulator/netconf-server |
NF simulator netconf server |
|
integration/simulators/nf-simulator/pm-https-server |
NF simulator pm https server |
|
integration/simulators/nf-simulator/ves-client |
NF simulator ves client |
|
integration/simulators/pnf-simulator |
PNF Simulator |
|
integration/simulators/ran-app |
RAN App |
|
integration/simulators/ran-nssmf-simulator |
RAN NSSMF simulator |
|
integration/simulators/ran-simulator |
RAN simulator |
Dockerization
From this repository, create a jenkins job to automatically build the dockers.
Helm Chart
It is recommended to create a helm chart in order to run the simulators.
Wrapper for simulators
1. In order to deploy the Helm release with a simulator, place a YAML file describing the Helm release in src/onaptests/templates/helm_charts.
The structure of the YAML file should be like in the example below. Dependencies contain all the charts that need to be pulled.
# Helm release information api_version: # API_VERSION app_version: # APP_VERSION chart_name: # SIMULATOR_NAME version: # CHART_VERSION # Helm charts that need to be pulled dependencies: - name: # SIMULATOR_NAME version: # CHART_VERSION repository: # URL local_repo_name: # REPO_NAME
Install the Helm release:
from onaptests.steps.wrapper.helm_charts import HelmChartStep chart = HelmChartStep( cleanup = BOOLEAN, chart_info_file = YAML_FILE_NAME # name, not the path ) chart.execute()
Start the simulator via an API call:
start = SimulatorStartStep( cleanup = BOOLEAN, https = BOOLEAN, host = HOSTNAME, port = PORT, endpoint = START_ENDPOINT, # if applicable method = REQUEST_METHOD, # GET, POST etc. data = PAYLOAD # {"json": {...}, ...} ) start.execute()
Undeploy the Helm release:
chart.cleanup()