Versions Compared

Key

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

...

Code Block
languagebash
titleRun rapp with SMO deployment
ransliceassurance/docker-compose/icsversion

 
After running instructions from README file in oam repository, at least the following images should be running, note that some components has been remove as they are not needed in this scenario:

Image Name

nexus3.o-ran-sc.org:10004/o-ran-sc/nts-ng-o-ran-du:1.4.5

ntsim-ng-o-du-1122

nexus3.onap.org:10001/onap/sdnc-image:2.2.3

sdnr

nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:1.10.1

ves-collector

nexus3.onap.org:10001/onap/sdnc-web-image:2.2.3

sdnc-web

nexus3.onap.org:10001/onap/dmaap/dmaap-mr:1.1.18

onap-dmaap

nexus3.onap.org:10001/onap/dmaap/kafka111:1.0.4

kafka

docker.elastic.co/elasticsearch/elasticsearch-oss:7.9.3

persistence

quay.io/keycloak/keycloak:12.0.4

identity

nexus3.onap.org:10001/onap/dmaap/zookeeper:6.0.3

zookeeper


Using the sdnc-web image, it can be seen that a simulator DU node is "Connected"

Image Added

After check that the DU node is connected, subscription stream can be created, the following Curl command can be used:Image Removed

Code Block
languagebash
titleConfigure VES details
curl -X PUT -H "Content-Type: application/yang-data+json" -H "Accept: application/yang-data+json" -d '{"subscription-streams":{"id":"stream-1","administrative-state":"unlocked","user-label":"stream1","ves-endpoint-protocol":"https","ves-endpoint-auth-method":"basic-auth","ves-endpoint-ip":"10.20.11.121","ves-endpoint-port":"8443","ves-endpoint-username":"sample1","ves-endpoint-password":"sample1"}}' -u admin:Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U {{baseUrl}}/rests/data/network-topology:network-topology/topology=topology-netconf/node={{node}}/yang-ext:mount/o-ran-sc-du-hello-world:network-function/subscription-streams=stream-1

Once the subscription stream has been created, a performance-measurement-job should be created as well. In order to do this, the following curl command can be used:

Code Block
languagebash
titlePM Job creation
cat payload.json
{"performance-measurement-jobs":{"id":"pm-1","administrative-state":"unlocked","user-label":"pm","job-tag":"my-job-tag","performance-metrics":["/o-ran-sc-du-hello-world:network-function/o-ran-sc-du-hello-world:distributed-unit-functions[o-ran-sc-du-hello-world:id='O-DU-1211']/o-ran-sc-du-hello-world:cell[o-ran-sc-du-hello-world:id='cell-1']/o-ran-sc-du-hello-world:supported-measurements[o-ran-sc-du-hello-world:performance-measurement-type='user-equipment-average-throughput-uplink']/o-ran-sc-du-hello-world:supported-snssai-subcounter-instances[o-ran-sc-du-hello-world:slice-differentiator='1'][o-ran-sc-du-hello-world:slice-service-type='1']"],"granularity-period":30,"stream-target":"stream-1"}}
 
curl -X PUT -H "Content-Type: application/yang-data+json" -H "Accept: application/yang-data+json" -d @payload.json -u admin:Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U {{baseUrl}}/rests/data/network-topology:network-topology/topology=topology-netconf/node={{node}}/yang-ext:mount/o-ran-sc-du-hello-world:network-function/performance-measurement-jobs=pm-1

In this case, a PM job has been created to send periodic information about user-equipment-average-throughput-uplink every 30 sec (according to granularity-period property)

Postman file with above commands can be found here.

After the PM job has been created, O-DU Simulator will start generating JSON VES PM stndDefined message  and sending those messages to VES collector. This is an example of the message:

Code Block
languageyml
titleExample VES message
{
  "event": {
    "commonEventHeader": {
      "domain": "stndDefined",
      "eventId": "pm-1_1649363550",
      "eventName": "stndDefined_performanceMeasurementStreaming",
      "eventType": "performanceMeasurementStreaming",
      "sequence": 5,
      "priority": "Low",
      "reportingEntityId": "",
      "reportingEntityName": "O-DU-1122",
      "sourceId": "",
      "sourceName": "O-DU-1122",
      "startEpochMicrosec": 1649363550000000,

      "lastEpochMicrosec": 1649363580000000,
      "nfNamingCode": "SIM-O-DU",
      "nfVendorName": "O-RAN-SC SIM Project",
      "stndDefinedNamespace": "o-ran-sc-du-hello-world-pm-streaming-oas3",
      "timeZoneOffset": "+00:00",
      "version": "4.1",
      "vesEventListenerVersion": "7.2.1"
    },
    "stndDefinedFields": {
      "stndDefinedFieldsVersion": "1.0",
      "schemaReference": "https://gerrit.o-ran-sc.org/r/gitweb?p=scp/oam/modeling.git;a=blob_plain;f=data-model/oas3/experimental/o-ran-sc-du-hello-world-pm-streaming-oas3.yaml#/components/schemas/performance-measurement-job",
      "data": {
        "id": "pm-1_1649363550",
        "start-time": "2022-04-07T20:32:30.0Z",
        "administrative-state": "unlocked",
        "operational-state": "enabled",
        "user-label": "pm",
        "job-tag": "my-job-tag",
        "granularity-period": 30,
        "measurements": [{"measurement-type-instance-reference": "/o-ran-sc-du-hello-world:network-function/distributed-unit-functions[id='O-DU-1122']/cell[id='cell-1']/supported-measurements[performance-measurement-type='(urn:o-ran-sc:yang:o-ran-sc-du-hello-world?revision=2021-11-23)user-equipment-average-throughput-uplink']/supported-snssai-subcounter-instances[slice-differentiator='1'][slice-service-type='1']","value": 55877,"unit": "kbit/s"}
]
      }
    }
  }
}

Logs for the O-DU simulator can be checked using the following command:

Code Block
languagebash
titleDU logs
docker exec -it ntsim-ng-o-du-1122 tail -f /opt/dev/ntsim-ng/log/log.txt

Run docker compose for ics version

As previously mention, a docker-compose file is available to run NonRt-Ric components and ODU Slice assurance Rapp. Docker compose file can be found in ransliceassurance/docker-compose/icsversion. To run it use the following command:

Code Block
languagebash
docker-compose up -d

After running the command, following docker images should be running:

ImageName
nexus3.o-ran-sc.org:10004/o-ran-sc/nonrtric-gateway:1.1.0 nonrtric-gateway
nexus3.o-ran-sc.org:10002/o-ran-sc/nonrtric-dmaap-mediator-producer:1.0.1 dmaap-mediator-service
nexus3.o-ran-sc.org:10002/o-ran-sc/nonrtric-dmaap-adaptor:1.0.1 dmaap-adaptor-service
nexus3.o-ran-sc.org:10002/o-ran-sc/nonrtric-controlpanel:2.3.0 nonrtric-control-panel
nexus3.o-ran-sc.org:10002/o-ran-sc/nonrtric-o-ru-closed-loop-recovery:1.0.1 oru-app
nexus3.o-ran-sc.org:10004/o-ran-sc/nonrtric-information-coordinator-service:1.2.1ics
nexus3.o-ran-sc.org:10004/o-ran-sc/nonrtric-rapp-ransliceassurance-icsversion:1.0.0 odu-app


Using the nonrtric-control-panel, information about producers and jobs can be listed:

Image Added


In order to start Slice assurance rapp, post request has to be send to the rapp:

Code Block
languagexml
http://localhost:8095/admin/start

Now a new job can be seen in the front end with information about Slice assurance rapp:

Image Added


Logs from the rapp can be seen using:

Code Block
languagebash
docker logs -f odu-app