Skip to content

o-ran-sc/ric-app-ad

Repository files navigation

# ==================================================================================
#  Copyright (c) 2020 HCL Technologies Limited.
#
#  Licensed under the Apache License, Version 2.0 (the "License");
#  you may not use this file except in compliance with the License.
#  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.
# ==================================================================================

Usage of all the programs and files have been mentioned below for the reference.
For AD xapp we require UEReport (UE related dataset)

AD xApp expect UE data from influxDB database in following structure:
	* There exists database with name "RIC-Test"
	* Inside "RIC-Test" database we have measurments namely "UEReports"
	
Note: *We need to update ad_config.ini with influxdb configuration. 
Update host as one of the following:
	1. influxdb service ruuning in RIC platform (host = <service name>.<namespace>) 
	   OR IP of influxdb pod
	2. Update user and password for influxDB instance

To polpulate influxdb with static data provided in .csv (ue.csv). 
	1. Run "python3 insert.py"
	2. Wait for few minutes before deploying AD xApp
	Note: This will be depreciated in next release when there will be data coming from KPIMON
	

AD xApp performs following:

* Initiates xapp api, make connection with influxDB and runs the entry() using xapp.run()
* If Model is not present in the current path, 
   a) Read history data from InfluxDB
   b) apply pre-processing steps
   c) trigger Training of ML model.
   d) after model validation, save transformation, model artifacts
* Detect anomalous user in real-time. 
   a) Read live data from influxDB every 0.5 second
   b) Detect anomalous records on given input
   c) Investigate degradation type for anomalous users
* Listens to RMR port for A1 policy (message type 20011) in a format given below. Which consists throughput threshold parameter (default: 70%) for an degradataion event to qualify for a handover
   {'operation': 'CREATE', 'payload': '{\"thp_threshold\":74}', 'policy_instance_id': 'demo-1', 'policy_type_id': '9997'}"}
* Send the ue-id, DU-ID, Degradation type and timestamp for the qualified anomalous records to the Traffic Steering (via rmr with the message type as 30003)
* Get the acknowledgement message from the traffic steering 
* store xApp result in "AD" measurement of influxDB

Note: Need to implement the logic if we do not get the acknowledgment from the TS. (How xapp api handle this?)