• The entire operation scenario can be checked when deployed with KPIMON xApp, Traffic Steering xApp and QP Driver xApp.

  • This is compatible with influxDB2.

Build Image

Use the docker build command for docker image build.

qp-aimlfw $ docker build -f Dockerfile .

Setting up curl (7.68.0-1ubuntu2.14) ...
Processing triggers for libc-bin (2.31-0ubuntu9.9) ...
Processing triggers for ca-certificates (20211016ubuntu0.20.04.1) ...
Updating certificates in /etc/ssl/certs...
0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
Removing intermediate container 694003ecb2e1
 ---> 18d14cdf7365
Step 15/19 : COPY --from=builder /opt/qoe-aiml-assist/build/qoe-aiml-assist .
  ---> 20d6be2c65b1
Step 16/19 : COPY --from=builder /usr/local/include /usr/local/include
  ---> e5f0c6465df4
Step 17/19 : COPY --from=builder /usr/local/lib /usr/local/lib
  ---> 5bcaca789e8c
Step 18/19 : COPY --from=builder /opt/qoe-aiml-assist/config/* /opt/ric/config/
  ---> a5ef330d90df
Step 19/19 : RUN ldconfig
  ---> Running in b6ee4f81f4ff
Removing intermediate container b6ee4f81f4ff
  ---> 91d0473a7cf1
Successfully built 91d0473a7cf1
Successfully tagged

Environments of qp-aimlfw

By modifying the config/config-file.json file before onboarding, we can change the environment variable of the QoE Prediction assist xApp. Below is a description of the configurable environmental variables related to QoE xApp.


URL contianing the address and port of influxDB. ex) “


a influx token composed of alphabets and numbers.


a bucket name of influxDB.


organization name of influxDB.


start point of the influxDB query range ex) “-3m” or “-10s”


end point of the influxDB query range. If this value is not set like “”, the end point is set to the current time(now). ex) “-1m” or “”


header of MLxApp’s host. ex) “”


host address of MLxApp. ex) “


port number of MLxApp. ex) “2222”


requet URL of MLxapp. ex) “v1/models/qoe-model:predict”

Onboarding of qp-aimlfw using dms_cli tool

Before deploying QoE Prediction assist xApp, onboarding should be done using config-file.json and schema.json Onboarding is required for the first time before deploy, and must be performed whenever the value of config-file.json is changed. For onboarding, dms_cli and helm3 are required. dms_cli can be referred to in this documentation <>

$ dms_cli onboard --config_file_path=config/config-file.json --schema_file_path=config/schema.json

path: '{{ index .Values "readinessProbe" "httpGet" "path" | toJson }}'
port: '{{ index .Values "readinessProbe" "httpGet" "port" | toJson }}'
initialDelaySeconds: '{{ index .Values "readinessProbe" "initialDelaySeconds" | toJson }}'
periodSeconds: '{{ index .Values "readinessProbe" "periodSeconds" | toJson }}'

path: '{{ index .Values "livenessProbe" "httpGet" "path" | toJson }}'
port: '{{ index .Values "livenessProbe" "httpGet" "port" | toJson }}'
initialDelaySeconds: '{{ index .Values "livenessProbe" "initialDelaySeconds" | toJson }}'
periodSeconds: '{{ index .Values "livenessProbe" "periodSeconds" | toJson }}'

"status": "Created"

Deployment of qp-aimlfw using dms_cli tool

Deploy the onboarded QoE Prediction assist xApp using dms_cli.

$ dms_cli install --xapp_chart_name=qoe-aiml-assist --version=1.0.0 --namespace=ricxapp

status: OK

Check if QoE Prediction assist xApp deployed normally.
$ kubectl get pods -n ricxapp
NAME                                       READY   STATUS    RESTARTS   AGE
ricxapp-qoe-aiml-assist-5f788bb667-47k5h   0/1     Pending   0          3m

$ kubectl get svc -n=ricxapp
NAME                                   TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)             AGE
aux-entry                              ClusterIP   <none>        80/TCP,443/TCP      8d
service-ricxapp-qoe-aiml-assist-http   ClusterIP    <none>        8080/TCP            129m
service-ricxapp-qoe-aiml-assist-rmr    ClusterIP   <none>        4560/TCP,4561/TCP   129m