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:
Traffic Steering, which sends prediction requests to QP.
QoE Predictor, which predicts and sends that prediction back to Traffic Steering
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:
container-tag.yaml
docs/release-notes.rst
setup.py
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¶
Change RMR listen port to 4560 (RICAPP-111)
[0.0.1] - 2020-05-21¶
Initial mock version (RICAPP-107)