---
# System prepended metadata

title: 9 July 2020 - Daily Report
tags: [Daily Report]

---

# 9 July 2020 - Daily Report


# Summary
----
## Expected Outcome : 
* Find information about the services in A1 Application Protocol
* Understand the procedure of the A1 policy management services operation
___
## Outcome : 
* Know the services in A1 AP specifically the policy management services
* Understand the procedure for each policy management service operation
* Know how the A1 interface protocol stack

## Further plan:
* Study about docker and kubernetes
* Trying to install docker in virtual machine

---
# Study Notes
:::info
Reference : O-RAN A1 interface: Application Protocol Version 1.1, can be accessed [here](https://www.o-ran.org/s/O-RANWG2A1AP-v0101.docx)
:::
## Important Term
:::warning
**A1 policy** 
>**Declarative policy** that is identified by its **PolicyID** and **contains** a **scope identifier** and one or more **policy statements**.

**Policy Identifier** 
>Identifier of an A1 policy that is used in policy operations.

**Scope Identifier**
>Identifier of what the statements in the policy applies to (UE, group of UEs, slice, QoS flow, network resource or combinations thereof).

**Policy statement**
>**Expression of a directive in an A1 policy** that is related to policy objectives and/or policy resources and are to be applied to/for the entities identified by the scope identifier.

**Policy Object**
>**Representation of an A1 policy in JSON format** used as payload in HTTP based policy procedures.
:::

## Services in A1 AP
The A1AP contain three APIs that are:
1. A1-P = Policy Management Service
2. A1-ML = ML Model Management Service
3. A1-E1 = Enrichment Information Service

The A1AP is based on signalling between A1 **service consumer** and A1 **service provider**.
![](https://i.imgur.com/8fhm1pF.png)
The interactions between Service Consumer and Service Provider is based on the service framework used for 3GPP Network Function.

## **Policy Management Service**
![](https://i.imgur.com/uEsdIe8.png)
The A1AP realizes the A1 policy procedures defined in the A1GAP using HTTP operations where a policy is represented as a JSON object.
### **Service Description**
#### **Policy Representation**
JSON usage in A1 policies principles:
* A policy corresponds to a resource (in the REST sense)
* A policy is represented as a JSON object referred to as a policy object
* A policy object conatins a scope identifier and at least one policy statement(e.g. one or more policy objective statements and/or one or more policy resource statements)
* A poilicy is identified by a policyId that is included in the URI when operation is for a single policy
* The poilicyId is assigned by the A1-P Consumer when the policy is created
* The A1-P Producer cannot modify or delete a policy
* Policy feedback for a specific poilicy is subscribed to when the poilicy is created by providing a callback URI in the create policy operation.
* A policy object does not contain any information related to which internal function in the near-RT RIC that is to evaluate the policy.

:::warning
**REST**
>Representational State Transfer

**URI**
>Uniform Resource Identifier
:::

#### **Representation objects**
1. **PolicyObjects**
>JSON representation of a complete A1 policy

2. **PolicyStatusObject**
>JSON representation of the enforcement status of an A1 policy.

3. **ProblemDetails**
>JSON representation of the content in a response message with other HTTP error response codes

#### **Resource identifiers**
Main URI for A1 policies
```
.../policies
```
A single policy can be operated upon by adding the value of the policy identifier to the URI:
```
.../policies/{policyID}
```
The main URI for status of a single policy is:
```
.../policies/{policyID}/status
```
### **Service Operations**
![](https://i.imgur.com/x8wzRwg.png)
___
#### Create Policy
1. Create Single policy
![](https://i.imgur.com/E3ug4WM.png)

2. **Create multiple policy**
The operation to create multiple policies is a sequence of operations to create a single policy.
___
#### Query Policy
1. **Query single policy**
![](https://i.imgur.com/iRjJ8QA.png)
2. **Query multiple policies**
The operation to query multiple policies is a sequence of operations to query a single policy.
3. **Query all policies**
![](https://i.imgur.com/8JyJuba.png)
___
#### Update policy
1. **Update single policy**
![](https://i.imgur.com/YAws9mD.png)
2. **Update multiple policies**
The operation to update multiple policies is a sequence of operations to update a single policy.
___
#### Delete Policy
1. **Delete single policy**
![](https://i.imgur.com/FGdvg6q.png)

2. **Delete multiple policies**
The operation to delete multiple policies is a sequence of operations to delete a single policy.
___
#### Policy feedback
Policy feedback is an operation that requires: 
* the A1-P Producer to have a reduced feature HTTP Client for sending HTTP POST requests and receiving HTTP POST responses
* The A1-P Consumer to have a reduced feature HTTP Server for receiving HTTP POST requests and sending HTTP POST requests

The A1-P Producer uses the policy feedback operation to notify the A1-P Consumer about **Changes in the policy enforcement status** for an A1 policy.

![](https://i.imgur.com/uTBatsK.png)

## API Definitions
The A1-P service shall use the A1-P API. The request URI used in HTTP request from the A1-P consumer towards the A1-P producer shall have the structure like this:
```
{apiRoot}/<apiName>/{apiVersion}/<apiSpecificResourceUriPart>
```
**apiRoot** should be a concatenation of the following parts:
* scheme ("https")
* The fixed string "://"
* authority (host and optional port) as defined in IETF RFC 3986

**apiName** should be "A1-P"
**apiVersion** should be "v1"
**apiSpecificResourceUriPart** should be as be defined below in resource section.

### Resources
![](https://i.imgur.com/5q6EXPX.png)
![](https://i.imgur.com/UUK8Yfs.png)
#### Individual Policy Object
**Resource Standard Methods**
**HTTP PUT**
![](https://i.imgur.com/OjiiQqL.png)
![](https://i.imgur.com/DQSRHw9.png)
**HTTP GET**
![](https://i.imgur.com/RSQgGX1.png)
**HTTP DELETE**
![](https://i.imgur.com/c0M2bt0.png)
#### Individual Policy Status Object
**Resource Standard methods**
**HTTP GET**
![](https://i.imgur.com/UUDeYiE.png)
#### All Policy Identities
**Resource Standard Methods**
**HTTP GET**
![](https://i.imgur.com/KqNdJen.png)

:::info
For the **Notifications**, **Data Model** and **Error Handling** refer to the main reference.
:::

## A1 Interface protocol stack
![](https://i.imgur.com/t3VtQWj.png)
* TCP provides the communication service at the transport layer
* TLS is used to provide secure HTTP connections
* HTTP/1.1 is used as application level protocol
* The data interchange layer constitutes the transport of documents in the JSON format
___



###### tags: `Daily Report`