# 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`