Under construction!
This This page describes how to run current implementation for the O-DU Slice Assurance usecase.
...
Code Block | ||||
---|---|---|---|---|
| ||||
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 |
persistence | |
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"
After check that the DU node is connected, subscription stream can be created, the following Curl command can be used:
Code Block | ||||
---|---|---|---|---|
| ||||
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 | ||||
---|---|---|---|---|
| ||||
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 | ||||
---|---|---|---|---|
| ||||
{
"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 | ||||
---|---|---|---|---|
| ||||
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 | ||
---|---|---|
| ||
docker-compose up -d |
After running the command, following docker images should be running:
Image | Name |
---|---|
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.1 | ics |
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:
In order to start Slice assurance rapp, post request has to be send to the rapp:
Code Block | ||
---|---|---|
| ||
http://localhost:8095/admin/start |
Now a new job can be seen in the front end with information about Slice assurance rapp:
Logs from the rapp can be seen using:
Code Block | ||
---|---|---|
| ||
docker logs -f odu-app |