Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Introduction/Background:

As part of Core NF Simulators setup, here is the link which gives the design time insights of Core NF Simulators. (Ref: Core-NF-Simulator).

Prerequisites:

VES Collector:

Core NF Simulator uses VES-evelJavaLibrary to send FileReady notification event to VES-Collector. VES-agent communicates to the collector by HTTP only, So in your ONAP environment, one has to enable HTTP connection for VES-collector.  As of Istanbul, VES collector is enabled and if not in your environment, you can enable it either by followint the blueprint method by running the mentioned as below(reference link https://docs.onap.org/projects/onap-dcaegen2/en/frankfurt/sections/services/ves-http/installation.html)

...

, or the HELM method which is the go forward method as of Istanbul.

    • Execute into Bootstrap POD using kubectl command, then VES blueprint is available under /blueprints directory k8s-ves.yaml. A corresponding input file is also pre-loaded into the bootstrap pod under /inputs/k8s-ves-inputs.yaml
    • Deploy blueprint
      • $ >> cfy install -b ves-http -d ves-http -i /inputs/k8s-ves-inputs.yaml /blueprints/k8s-ves.yaml

Fixing the upf simulator:

The upf simulator in the docker registry for lttscoresimulator does not work.  The amf and smf functions were updated to version 1.5, upf remained at 1.3 and was not updated, and does not work "out of the box".  However the version available can be pulled to a local host, edited, and served locally using docker registry, and tagged as version 1.5.

Edits to the upf-simulator container image:

  • Use docker pull to grab a copy of the upf-simulator version 1.3
  • Use docker save -o ~/Downloads/upf-siumlaotr_v1.3.tgz lttscoresimulators/upf_simulator:v1.3
  • Make these edits to the code:
    • AT the top level there is a repositories file.  You will need to add the path to your repository.  This is the localhost tag, and the long string that appears after you launch your Docker registry.   For example, {"localhost:5000/lttscoresimulators/upf_simulator":{"v1.5":"ef0368aae6b2b32910ff97cb0095b4b98463c8f444a2abf1ba2c6c9c27a11692"}}
    • There is an archive in the image file that's ~75kb in size, and should contain a Code, and Config folder.  Several files need to be edited.
      • In the application-config.py file change line 38 from self.config_file = '/etc/config/supportedNssai.json to self.config_file = '/etc/config/upf-conf/supportedNssai.json
      • The file is missing a path to the granularity period configuration.  Add this text after the dcae_collector_port_file_path,  self.granularity_period_file_path = '/etc/config/upf-conf/granularity_period.txt'  
    • In the sftp_config.sh file, comment out with a "#" everything below "service ssh restart"
  • Once you have your docker image file updated and ready to be published in your local registry, use the docker load command to load it into your local image repository.  Do not use the docker import command.
  • Tag it as per the docker registry instructions as pre-ceded with localhost:5000, version 1.5, then push it push it using docker push, delete your local image using docker rm, then pull it using docker pull to make sure it work and the image is in your repository and thus in the registry.,

Edit the upf Helm Chart from the downloaded versions below:

In the templates folder, deployments.yaml file, change the mount path for the config-volume in the spec section from /etc/config/ to /etc/config/upf-conf.  This will align the Helm based deployment to the specifications in the code above for application configurations and ensure they are placed in the correct location on your pod.

In the same folder, the configmap.yaml file should have the json mapping for the supported snssai at the bottom the JSON code in this code block.  This also needs to be done for the amf, and smf configmap.yaml charts as well.


Code Block
collapsetrue
            {

               "s-nssai": "{{ .Values.config.supportedNssai.sNssai.snssai }}",

               "status":  "{{ .Values.config.supportedNssai.sNssai.status }}" 

            }

In the values.yaml file, the "Image section needs to reflect that you are now locally hosting the code.  Example in the code block below;


Code Block
collapsetrue
image:

  repository: localhost:5000/lttscoresimulators/upf_simulator

  tag: v1.5

  pullPolicy: IfNotPresent


Deployment Options:

Core NF Simulators (AMF/SMF/UPF) can be deployed in two ways,

...

  • Use the same CBA package provided in the 5GC instantiation flow and continue the design and deployment steps for core-simulators instantiations as CNF's.  Then navigate to https://github.com/onap/ccsdk-cds/tree/master/components/model-catalog/blueprint-model/service-blueprint/5GC_Simulator_CNF_CDS and download the updated kotlin scripts and vtl files as the ones from the CBA package no longer work rawin the Istanbul release..
  • AMF/SMF/UPF Simulators will start simulating the PM Data for all the active S-NSSAI's and sends the fileReady notification to VES-Collector based on the granularity period.
  • PM files of respective simulators are saved under the SFTP user directory. (i.e. /data/admin/pm_directory/ )

...