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

Simulators

Name

Description

Link

Contacts

NF Simulator

Evolution of the pnf simulator, the Network service simulator

official doc

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

official readme

Krystian Kędroń

Mass PNF Simulator

Mimic the PNF for benchmark purposes

official readme

Tamas Bakai

Ran simulator

RAN-SIM is a Radio Access Network Simulator, it is used to simulate the various functionalities of an eNodeB

official readme

Priyadharshini B

DC simulator

Data Center simulator

official readme

Xin Miao

Recommendations

The simulator code

We recommend to create a dedicated repository (ask Integration team).

Simulator repositories

Repository

Description

Link

integration/simulators/5G-core-nf-simulator

5G core nf simulator

link

integration/simulators/A1-policy-enforcement-simulator

A1 Policy Enforcement Simulator

link

integration/simulators/core-nssmf-simulator

Core NSSMF Simulator

link

integration/simulators/nf-simulator

NF simulator

link

integration/simulators/nf-simulator/avcn-manager

NF simulator avcn manager

link

integration/simulators/nf-simulator/netconf-server

NF simulator netconf server

link

integration/simulators/nf-simulator/pm-https-server

NF simulator pm https server

link

integration/simulators/nf-simulator/ves-client

NF simulator ves client

link

integration/simulators/pnf-simulator

PNF Simulator

link

integration/simulators/ran-app

RAN App

link

integration/simulators/ran-nssmf-simulator

RAN NSSMF simulator

link

integration/simulators/ran-simulator

RAN simulator

link

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
  1. 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()
  1. 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()
  1. Undeploy the Helm release:

chart.cleanup()