/
PCI Optimization API

PCI Optimization API



This API is used by a PCI Handler Microservice as envisioned in the solution for the Casablanca 5G OOF-PCI Use Case



Table of Contents







OOF/HAS Create/Update API

Interface Defintion

Description

Interface Defintion

Description

URI

https://{host}:{port}/api/oof/pci/v1

Operation Type

POST

Content-Type

application/json

Request Header

Header Name

Required?

Description

Header Name

Required?

Description

Accept

N

Determines the format of the body of the response. Valid value is “application/json”

Authorization

Y

Supplies Basic Authentication credentials for the request. If the Authorization header is missing, then an HTTP 400 Invalid Request response is returned. If the string supplied is invalid, then an HTTP 401 Unauthorized response is returned.

Content-Type

Y

Determines the format of the request content. Only application/json is supported.

Content-Length

N

Number of bytes in the body of the request. Note that content length is limited to 1 MB.

Request Body

Attribute

Required?

Cardinality

Content

Values

Description

Attribute

Required?

Cardinality

Content

Values

Description

requestInfo

Y

1

RequestInfo Object



The content of the RequestInfo object.

cellInfo

Y

1

CellInfo Object



The Content of the CellInfo object.

RequestInfo Object

Attribute

Required?

Cardinality

Content

Values

Description

Attribute

Required?

Cardinality

Content

Values

Description

transactionId

Y

1

UUID/String



A unique ID to track an ONAP transaction.

requestId

Y

1

UUID/String



A unique ID to track multiple requests associated with a transaction.

callbackUrl

Y

1

URL



The end point of a callback service where recommendations are posted.

callbackHeader

N

1

JSON blob



The header information a client expecting in a async callback.

sourceId

Y

1

String



The unique ID of a client making an optimization call.

requestType

Y

1

String

create, update, delete

The type of a request

numSolutions

N

1

Integer



Expected number of solutions. numSolution can also be specified using an optimization query policies, where the default configured value is 1. The value from a request gets higher precedence over the value defined in a policy.

optimizers

Y

1..N

List of Strings

scheduling

A list of optimization services.

timeout

Y

1

Integer



A tolerance window (in secs) for expecting solutions.

CellInfo Object

Attribute

Required?

Cardinality

Content

Values

Description

Attribute

Required?

Cardinality

Content

Values

Description

networkId

Y

1

String



Id of network requiring PCI optimization

cellIdList

Y

1..N

List of Strings



List of cellIds triggering need for PCI optimization (e.g. potential confusion)

anrInputList

Y

1..N

List of ANR Info objects



ANR inputs (list of 'removable' cells)

fixedPCICells

N

1..N

List of Strings



List of cellIds whose PCI values are not allowed to be changed during PCI optimization

priorityTreatmentCells

N

1..N

List of Strings



List of cellIds requiring priority/special treatment during PCI optimization

trigger

N

1

String

NbrListChange

Type of trigger causing need for PCI optimization

CellId Object

Attribute

Required?

Cardinality

Content

Values

Description

Attribute

Required?

Cardinality

Content

Values

Description

CellId

Y

1

String



Cell identity

ANRInfo Object

Attribute

Required?

Cardinality

Content

Values

Description

Attribute

Required?

Cardinality

Content

Values

Description

CellId

Y

1

String



Cell Identity

RemovableNeighbors

Y

1..N

List of strings



List of removable neighbor cells

Synchronous Response Body

Attribute

Required?

Cardinality

Content

Values

Description

Attribute

Required?

Cardinality

Content

Values

Description

requestId

Y

1

UUID/String



A unique Id for an ONAP transaction.

transactionId

Y

1

UUID/String



A unique ID to track multiple requests associated with a transaction.

statusMessage

N

1

String



Reasoning if a requestStatus is failure.

requestStatus

Y

1

String

accepted, failed

The status of a request.

Asynchronous Response Header

Header Name

Required?

Description

Header Name

Required?

Description

Accept

N

Determines the format of the body of the response. Valid value is “application/json”

Authorization

Y

Supplies Basic Authentication credentials for the request. If the Authorization header is missing, then an HTTP 400 Invalid Request response is returned. If the string supplied is invalid, then an HTTP 401 Unauthorized response is returned.

Content-Type

Y

Determines the format of the request content. Only application/json is supported.

Attribute

N

Attribute and respecrtive value that a client has sent in the callbackHeader field of a requerst.

Content-Length

N

Number of bytes in the body of the request. Note that content length is limited to 1 MB.

Asynchronous Response Body

Attribute

Required?

Cardinality

Content

Values

Description

Attribute

Required?

Cardinality

Content

Values

Description

requestId

Y

1

UUID/String



A unique Id for an ONAP transaction.

transactionId

Y

1

UUID/String



A unique ID to track multiple requests associated with a transaction.

statusMessage

N

1

String



Reasoning if requestStatus is failure.

requestStatus

Y

1

String

completed, failed, pending

The status of a request.

solutions

Y

1..N

List of Solution Objects



Solutions related to a request.

Solution Object

Attribute

Required?

Cardinality

Content

Values

Description

Attribute

Required?

Cardinality

Content

Values

Description

networkId

Y

1

String



Id of network requiring PCI optimization

pciANRSolutions

Y

1

PCIANRSolution Object contents



A list of cellIds in the networkId with modified PCI values, and optionally a list of neighbors to be blacklisted

PCIANRSolution Object

Attribute

Required?

Cardinality

Content

Values

Description

Attribute

Required?

Cardinality

Content

Values

Description

cellId

Y

1

String



cellId with modified PCI value

pciSolutions

Y

1..N

List of pciSolution object



New PCI value for cellId

anrSolutions

Y

1..N

List of ANRInfoobject



ANR solutions

pciSolution Object

Attribute

Required?

Cardinality

Content

Values

Description

Attribute

Required?

Cardinality

Content

Values

Description

cellId

Y

1

String



cellId with modified PCI value

pci

Y

1

Integer



New PCI value for cellId

ANRInfo Object

Attribute

Required?

Cardinality

Content

Values

Description

Attribute

Required?

Cardinality

Content

Values

Description

cellId

Y

1

String



cellId with modified PCI value

removableNeighbors

Y

1..N

List of Strings



List of neighbors to be blacklisted


HTTP Response Code

HTTP Code

Response Phrase

Description

HTTP Code

Response Phrase

Description

201

Created

An optimization solution is found.

202

Accepted

An optimization request is accepted.

400

Bad request

Bad request.

401

Unauthorized

Request body is not compliant with the API definition.

404

Not found

The server cannot find the requested URI.

405

Method not found

The requested method is not supported by a server.

500

Internal server error

The server encountered an internal server error or timed out.

520

Solver error

Requested number of solutions cannot be found.

Request Example



OOF/PCI Request Example
{ "requestInfo": { "transactionId": "xxx-xxx-xxxx", "requestId": "yyy-yyy-yyyy", "callbackUrl": "https://wiki.onap.org:5000/callbackUrl", "sourceId": "PCIHMS", "requestType": "create", "numSolutions": 1, "optimizers": ["pci"], "timeout": 600 }, "cellInfo": { "networkId": "NTWK005", "cellIdList": [ "EXP001" ] }

Synchronous Response Example



OOF/PCI Response Example
{ "transactionId": "xxx-xxx-xxxx", "requestId": "yyy-yyy-yyyy", "requestStatus": "accepted", "statusMessage": "" }

Asynchronous Response Example



OOF/PCI Response Example
{ "transactionId": "xxx-xxx-xxxx", "requestId": "yyy-yyy-yyyy", "requestStatus": "completed", "statusMessage": "success", "solutions": [ { "startTime": "2016-10-01T00:30+01:00", "finishTime": "2016-10-01T00:40+01.00", "networkId": "NTWK005", "pciSolutions": [ {"cellId": "EXP001", "pci": "101"}, {"cellId": "EXP002", "pci": "102"}, ] } ] }



Related content