Table of Contents |
|
...
Attribute | Required? | Cardinality | Content | Values | Description |
---|---|---|---|---|---|
requestInfo | Y | 1 | RequestInfo Object | The content of the RequestInfo object. |
...
routeInfo |
Y |
1 |
...
RouteInfo | The content of Router request object |
RequestInfo Object
Attribute | Required? | Cardinality | Content | Values | Description |
---|
Synchronous Response Body
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 |
Reasoning if a requestStatus is failure.
The unique ID of a client making an optimization call. | |||
requestType | Y | 1 | String |
create, update, |
delete | The |
type of a request |
Asynchronous Response Header
...
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.
...
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 | placement | A list of optimization services. |
timeout | N | 1 | Integer | A tolerance window (in secs) for expecting solutions. Default is 600 secs. |
RouteInfo Object
Attribute | Required? | Cardinality | Content | Values | Description |
---|---|---|---|---|---|
routeRequest | Y | 1 | RouteRequestInfo | The content of Router request object |
RouteRequestInfo Object
Attribute | Required? | Cardinality | Content | Values | Description |
---|---|---|---|---|---|
srcPort | Y | 1 | RoutePortInfo | Source port info | |
destPort | Y | 1 | RoutePortInfo | Destination Port info |
RoutePortInfo Object
Attribute | Required? | Cardinality | Content | Values | Description | Additional dependency Information |
---|---|---|---|---|---|---|
accessTopologyId | N | 1 | String | Access Topology Id | Any one of this attribute MUST be provided in both source and destination RoutePortInfo object. | |
accessClientId | N | 1 | String | Client Id | ||
accessProviderId | N | 1 | String | |||
accessNodeId | N | 1 | String | |||
accessLtpId | N | 1 | Integer |
Synchronous Response Body
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. | ||
solutions | Y | 1 |
..N | List of RouteSolutionInfo | Solutions related to a request. |
...
Route Solution Info
Attribute | Required? | Cardinality | Content | Values | Description |
---|---|---|---|---|---|
startTime | Y | 1 | Timestamp | ||
finishTime | Y | 1 | Timestamp | ||
VPNs | N | 0..N | List of VPNInfo | List of VPN's |
VPN Info
Attribute | Required? | Cardinality | Content | Values | Description |
---|
...
accessTopologyId | Y | 1 | String | Access Topology Id | |
accessClientId | Y | 1 | String | ||
accessProviderId | Y | 1 | String | ||
accessNodeId | Y | 1 | String | ||
srcAccessLtpId | Y | 1 | Integer | ||
dstAccessLtpId | Y | 1 | Integer |
HTTP Response Code
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
Code Block | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
{ "requestInfo": { "transactionId": "xxx-xxx-xxxx", "requestId": "yyy-yyy-yyyy", "callbackUrl": "https://wiki.onap.org:5000/callbackUrl", "sourceId": "", "requestType": "create", "numSolutions": 1, "optimizers": [ "route" ], "timeout": 600 }, "routeInfo": { "routeRequest": { "srcPort": { { "src-access-topology-idaccessTopologyId": "Topo113", "src-access-client-id "accessClientId": "clientU12", "src-access-provider-id "accessProviderId": "VDF1234", "src-access-node-idaccessNodeId": "Node123", "src-access-ltp-idaccessLtpId": "1345" }, "dstPort": { { "dst-access-topology-idaccessTopologyId": "Topo3421", "dst-access-client-idaccessClientId": "clientD123", "dst-access-provider-idaccessProviderId": "VDF3214", "dst-access-node-id": "node323", "dst-access-ltp-idaccessNodeId": "3452node323", } }, } |
Synchronous Response Example
Code Block | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
{ "transactionIdaccessLtpId": "xxx-xxx-xxxx",3452" "requestId": "yyy-yyy-yyyy", } "requestStatus": "accepted", } "statusMessage": "" } } |
...
Synchronous Response Example
Code Block | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
{ "transactionId": "xxx-xxx-xxxx", "requestId": "yyy-yyy-yyyy", "requestStatus": "completedaccepted", "statusMessage": "success", "solutions": [ { { "startTime": "2016-10-01T00:30+01:00", "finishTime": "2016-10-01T00:40+01.00", "VPNs": [ { "access-topology-idaccessTopologyId": ”Topo123”"Topo123", "access-client-idaccessClientId": “client"client-123”123", "access-provider-id "accessProviderId": “provider"provider-123”123", "access-node-idaccessNodeId": “node"node-123”123", "src-access-ltp-idsrcAccessLtpId": “ltp"ltp-src-123”123", "dst-access-ltp-iddstAccessLtpId": “ltp"ltp-dst-123”123" } ] ] } } ] } |
SDNC - OOF:
Calculate Route
Type : POST
URL : /v1/route
Payload:
OOF- AAI for retrieving topology information:
1. Get the logical links as “operation-status = Up”
Method: GET URL: https://<AAI host>:<AAI port>/aai/v14/network/logical-links?operation-status="Up"
returns logical-links []
2. query for the name of the p-interface from the logical link.
logical-links [].get[0].relationship-list[0].relationship.relationship-key: "p-interface.interface-name"."relationship-value": "some name”
3. Search for the name of the pnffrom the urlof the p-interface and compare with the request from SDNC
...