QoE Predictor xApp

QoE Predictor Overview

QoE Predictor (QP) is an Xapp in the Traffic Steering O-RAN use case, which uses the following Xapps:

  1. Traffic Steering, which sends prediction requests to QP.

  2. QoE Predictor, which predicts and sends that prediction back to Traffic Steering

  3. KPIMONN, which populates UE and Cell metrics into the influxdb.

Expected Input

The QP Xapp expects a prediction-request JSON message via RMR with the following structure:: {“UEPredictionSet”: [“Car-1”]}

Expected Output

The QP Xapp should send a prediction for both downlink and uplink throughput as a JSON message via RMR with the following structure:

{"Car-1":{
"c6/B2": [12650, 12721],
"c6/N77": [12663, 12739],
"c1/B13": [12576, 12655],
"c7/B13": [12649, 12697],
"c5/B13": [12592, 12688]
}}

Developers Guide

Version bumping the Xapp

This project follows semver. When changes are made, update the version strings in:

  1. container-tag.yaml

  2. docs/release-notes.rst

  3. setup.py

  4. xapp-descriptor/config.json

Testing RMR Healthcheck

The following instructions should deploy the QP container in bare docker, and allow you to test that the RMR healthcheck is working.

docker build -t qpd:latest -f  Dockerfile .
docker run -d --net=host -e USE_FAKE_SDL=1 qpd:latest
docker exec -it CONTAINER_ID /usr/local/bin/rmr_probe -h 127.0.0.1:4560

Unit Testing

Running the unit tests requires the python packages tox and pytest.

The RMR library is also required during unit tests. If running directly from tox (outside a Docker container), install RMR according to its instructions.

Upon completion, view the test coverage like this:

tox
open htmlcov/index.html

Alternatively, if you cannot install RMR locally, you can run the unit tests in Docker. This is somewhat less nice because you don’t get the pretty HTML report on coverage.

docker build  --no-cache -f Dockerfile-Unit-Test .

Release Notes

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

[0.0.4] - 2021-07-07

  • Removed QP Driver functionaity for QP, Incoming request from TS and Add actual protoype ML prediction code (RICAPP-46)

[0.0.3] - 2020-12-08

  • Process incoming message from QP Driver and generate a dynamic mock Prediction message with one cell having better xput

[0.0.2] - 2020-06-02

[0.0.1] - 2020-05-21