# Daily Note 20/07/2020
###### tags: `Daily Notes` , `O-RAN` , `Acumos`
## Name : Christofel Rio Goenawan
## University : Bandung Institute of Technology (ITB)
---
## Schedule:
1. Study detailed works of Admission Control xApp.
2. Study detailed works of KPI Monitor xApps.
3. Company Meeting with Compal
4. Study detailed works of UE Measurement Campaign xApps.
## Outcome :
1. Explain the detailed works of Admission Control xApp.
2. Explain detailed works of KPI Monitor xApps.
3. Explain detailed works of Measurement Campaign xApps.
## Further Plan :
- Study more detailed about current xApps
- Study more detailed about AIO Installation in Kubernets
- Try to deploy Acumos AIO in NTUST server
---
## Daily Log
### 1.Study detailed works of Admission Control xApp. <mark>(9.00)</mark>
- Study more detail explanation in [Documentation](https://wiki.o-ran-sc.org/display/RICA/Admission+Control+xApp)and other resources.
### 2.Study detailed works of KPI Monitor xApps. <mark>(12.00)</mark>
- Study more detail explanation in [Documentation](https://docs.o-ran-sc.org/projects/o-ran-sc-ric-app-kpimon/en/latest/overview.html).
### 3. Company Meeting with Compal <mark>(14.00)</mark>
-
### 4. Study detailed works of UE Measurement Campaign xApps. <mark>(15.00)</mark>
- Study more detail explanation in [Documentation](https://wiki.o-ran-sc.org/display/RICA/Measurement+Campaign+xApp) and other resources.
---
## Report
### 1. How Admission Control xApps works ?
>In this note Writer use [Documentation](https://wiki.o-ran-sc.org/display/RICA/Admission+Control+xApp) as study sources.
#### What is Admission Control xApps ?
Admission Control xApps ( usually called AC xApps ) are xApps that responsible for task as below.
1. Subscription for **SgNBAdditionRequest** message in the gNB.
2. Executing logic to determine if a dual connection should be accepted or rejected and generating the RIC CONTROL message.
3. Update metrics: dual connections accepted/rejected.
#### Functionality
From refernce, control via **A1 interface** can be configure by following 4 parameters as below.
- **Parameter 1: enforce** , type = Boolean, description = whether to apply admission control or not
- **Parameter 2: window length** , type = number , description = range over which to measure request volume
- **Parameter 3: trigger threshold**, type = number , description = threshold above which to trigger blocking
- **Parameter 4: Blocking rate** , type = number, description = percentage of requests to reject
A policy sent to the Admission Control xAPP must be a JSON that conforms to the xAPP Policy Schema maintained by A1 Mediator. The Admission Control instance of the schema is adm-ctrl-xapp-schema.json
:::info
- An example of received policy :
```{ "enforce":true, "window_length":10, "blocking_rate":20, "trigger_threshold":10 }```
- Example of response from Admission Control xAPP on successful application of policy :
```{ "status":"SUCCESS", "message":"Config applied" }```
:::
#### Deployment
There are 3 ways to deploy AC xApps as below.
1. On the RIC, the Admission Control xAPP can be deployed using xApp Manager REST API interface.
2. Use ``appmgrcli`` command provided by xApp Manager:
```appmgrcli -h appmgr-service p 8080 deploy admin xapp```
3. Use curl-command:
```curl -X POST http://appmgr-service:8080/ric/v1/xapps -d '{"name:" "admin xapp}'```
The Admission Control xAPP provides a configuration json and schema in its helm chart, conforming to the template structure dictated by the xAPP Manager
The configuration descriptor is **config-file.json**. The descrition can be seen as below.
- The configuration descriptor describes the RMR messages that the xAPP expects to consume, send as well as a static route table for preliminary testing.
- In addition, it exposes key configuration parameters under the 'env' block which can be used to configure behaviour of the xAPP.
The schema of the descriptor is **schema.json**.
---
### 2. KPI MOnitor xApps
> In this note Writer use [Documentation](https://docs.o-ran-sc.org/projects/o-ran-sc-ric-app-kpimon/en/latest/overview.html) as study sources.
#### What is KPI MOnitor xApps ?
KPI Monitor xApps are first step towards an xApp that collects **metrics** from CU and DU and stores them inside the RIC for other xApps to consume.
#### Functionality
- LTE eNB and 5G NR gNB produce data that can be monitored and analyzed to measure the system’s effectiveness.
- The near Real-Time RIC can gather the radio and **system Key Performance Indicators (KPI)** from E2 Nodes and can utilize the metrics for closed-loop control.
- The KPI includes but not limited as below.
- UE measurement
- E2 Node Measurement
- E2 Node Load-related measurement.
- The KPIMON xApp provides the first step towards the successful closed-loop control, through the monitoring E2 Node’s performance metrics, and writing it into Redis DB.
- With the near real-time reporting KPIs, the near Real-Time RIC can immediately control E2 Nodes.
#### System Limitations
- The xAPP currently does not support A1 Interface, so policy updates is not implemented in the xAPP. All the GNB to be subscribed needs to be specified initially.
- The xAPP currently only supports messages from CU.
- The subscription request parameters (RAN Function ID etc) cannot be changed.
:::info
Writer don't find many source about KPI Monitor xApp in internet other than documenation.
:::
---
### 3. Measurement Campaign xApps
> In this note Writer use [Documentation](https://wiki.o-ran-sc.org/display/RICA/Measurement+Campaign+xApp) as study sources.
#### What is Measurement Campaign xApps ?
Measurement Campaign xApps ( usually called MC xApps ) are xApps that calculates a number of metrics and KPIs based on X2 messages formatted as protobufs as defined in ``/ric-plt/streaming-protobufs``.
In the MC xApp, we compute 5G KPIs at customized fine-grained granularities as below.
- On a per-UE per-bearer basis
- On a per-UE basis
- On a UE-group basis
- On an NR cell-wide basis
- On an NR gNB-wide basis
The key 3GPP EN-DC X2AP procedures that we handle in the MC xApp as below.
- SgNB Addition
- SgNB Release
- SgNB Modification
- RRC Transfer
- Secondary RAT Data Usage Report
#### Architectures
From reference , the main components of MC xApps can be shown as below.
1. **mc-core/*** contains the source of core MC xApp container.
- **+ mc-core/mc/queries/** contains a set of queries computing the output metrics and KPIs.
- **+ mc-core/mc/data_gen/** contains a generator of X2 messages to run MC in standalone simulation mode without UEEC.
3. **sidecars/** contains the source code the RMR listener container responsible for listeting to UEEC messages and forwarding them to mc-core.
4. **docs/** contains the documentation.
#### Functionality
From the components above the functionality can be shown as below.
- The metrics are reported periodically as VES events and include metrics such as number of dual connected UEs, duration of dual connections, and signal strength metrics.
- Internally, MC xApp uses the **gs-lite stream processing engine** (com/gs-lite).
- The protobufs are received as RMR messages from UEEC.
- If no such data producer is available, MC xApp can be run in a simulated mode where the protobuf content is generated locally by the UEEC simulator running in the same container.
---
## Reference
1. https://wiki.o-ran-sc.org/display/RICA/Admission+Control+xApp
2. https://docs.o-ran-sc.org/projects/o-ran-sc-ric-app-kpimon/en/latest/overview.html
3. https://wiki.o-ran-sc.org/display/RICA/Measurement+Campaign+xApp