E2 Manager R5 Interface Design (Draft)
Revision Description
Document status | DRAFT |
|---|---|
Document owner | |
Owner Details | +972-54-2891166, ab600d@intl.att.com |
- 1 Revision History
- 2 REST API
- 2.1 API Request Overview
- 2.2 Standard API Request Headers
- 2.3 RESTful Web Services Interface Specification
- 2.4 Error Handling
- 2.5 Table 1 – Common Type, Enum values
- 2.6 1. Health Check Request
- 2.7 2. Get NodeB Request
- 2.8 3. Update GNB Request
- 2.9 4. Insert ENB Request
- 2.10 5. Update ENB Request
- 2.11 6. Delete ENB Request
- 2.12 7. Shut Down Request
- 2.13 8. Get All NodeB States Request
- 2.14 9. Get All E2T Request
- 2.15 10. E2M Set Parameter
- 2.16 X2 Setup Request (Deprecated)
- 2.17 ENDC Setup Request (Deprecated)
- 2.18 Reset nodeb Request (Deprecated)
- 3 SDL Notification
Revision History
R5 Release
Revision Description | Time | Swagger Ready |
|---|---|---|
Adding new methods - Insert, Update and Delete ENB. Add new errors. Added Additional Cell Information for both eNB and gNB (in the Insert eNB Request, Update eNB) Changing the response of Get NodeB - adding more information to the Cell Object | July 2020 | Ready |
Changing the end point of Update GNB. Adding more information to the Cell Object like Update eNB | July 2020 | Ready |
Supporting E2M Set Parameter (New method) with Enable RIC parameter | May 2020 | Ready |
Get All NodeB States Request changed its End-Point URL Adding Connection Status in RAN object in Get All NodeB States Response | TBD |
|
RAN Definition in the RAN List table turn to be Array of bytes (We don't decode the ASN.1) | June 2020 | Ready |
AD SDL Notification Description | June 2020 | NA |
REST API
API Request Overview
In the URI of each method in this document we write “V#” instead of V1, since when moving from Version to Version sometimes we forgot to update it in the document. So to make our life easier, V# covers the Latest version.
Standard API Request Headers
Approved Standard Headers are documented at https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
# | Header | Required? | Description |
|---|---|---|---|
1 | Accept | YES | Specifies the format of the response message body. Structured text message payloads are required to support application/json. No other format is permitted. As they are the only supported format, the accept header is not relevant for those requests. |
2 | Content-type | YES | Determines the format of the request content. Only application/json is supported. |
RESTful Web Services Interface Specification
# | API | Resource After base URI | HTTP Verb |
|---|---|---|---|
| X2 Setup Request Message Request (deprecated) | /v#/nodeb/x2-setup | POST |
| ENDC Setup Request Message Request (deprecated) | /v#/nodeb/endc-setup | POST |
| Reset nodeb Request (deprecated) | /v#/nodeb/<ranName>/reset * | PUT |
1 | Health Check Request | /v#/health | GET |
2 | Get nodeb data Request | /v#/nodeb/<ranName> | GET |
3 | Update GNB Request | /v#/nodeb/gnb/<ranName> | PUT |
4 | Insert ENB Request | /v#/nodeb/enb | POST |
5 | Update ENB Request | /v#/nodeb/enb/<ranName> | PUT |
6 | Delete ENB Request | /v#/nodeb/enb/<ranName> | DELETE |
7 | Shut Down Request | /v#/nodeb/shutdown | PUT |
8 | Get All nodeb States Request | /v#/nodeb/states | GET |
9 | Get All E2T Request | /v#/e2t/list | GET |
10 | E2M set parameters | /v#/nodeb/parameters | PUT |
Note: Due to router problem we change the Endpoint of Reset nodeb to /v1/nodeb-reset/<ranName>.
Error Handling
Note that, in some scenarios, Client may receive error responses that originate from the network layers. The content of these responses will not conform to the exception schema specified here.
# | Header | Required? | Description |
|---|---|---|---|
1 | errorCode | YES | Code which identifies the error |
2 | errorMessage | YES | Human readable text |
Error Example:
{
"errorCode": 402,
"errorMessage": “Mandatory fields are missing”
}Here is the list of HTTP status code:
HTTP Error | errorCode | errorMessage | Details |
|---|---|---|---|
202 Accepted | 510 | No E2T Instance available. | The existing RAN can't associated with any available E2T Instance. When E2T will be identified, this RAN will be served. |
511 | No Routing Manager Available | Currently there is connectivity to the Routing Manager. E2M will try later. | |
400 Bad Request | 401 | corrupted json | Can't parse the payload of the body |
402 | validation error | E.G: Mandatory fields are missing or invalid (The value isn't according expected); | |
403 | Activity <activity name> rejected. RAN current state <state> does not allow its execution | E.G: Reset request is sent when state isn't Connected | |
405 | command already in progress | E.G: 2 parallel Red Button were sent | |
406 | Node Already Exist | Insert eNB to existing RAN | |
404 Not Found |
|
| If the resource name doesn't exist (e.g.: nodec instead of nodeb) - the system returns HTTP Error 404 with "404 page not found" text. |
404 | resource not found | The classic 404 - Resource ID doesn't exist in the system | |
415 Unsupported Media Type | 415 | Header validation error | In case there is a body and header application/json is missing - error. |
500 Internal Server Error | 500 | RNIB error |
|
501 | Internal Server Error. Please try again later |
| |
502 | RMR error |
| |
503 Service Unavailable | 510 | No E2T Instance available. | The New RAN can't be added, please try later. |
511 | No Routing Manager Available | The New RAN can't be added, please try later. |
Here is the list of HTTP status code and list of the error codes for our APIs:
| HTTP 202 Accepted | HTTP Error 400 Bad Request | HTTP Error 404 Not Found | HTTP Error 500 Internal Server Error | HTTP Error 503 Service Unavailable |
|---|---|---|---|---|---|
Get nodeb data |
|
| 404 | 500, 501 |
|
Update GNB, Insert ENB, Update ENB Delete ENB |
| 401, 402, 406 | 404 | 500, 501 |
|
Shut Down |
| 405 |
| 500, 501, 502 | 511 |
Get All nodeb |
|
|
| 500, 501 |
|
Get All E2T |
|
|
| 500, 501 |
|
E2M Set Parameters |
| 401 |
|
|
|
In addition, there are 2 Basic HTTP error happens before the handlers are calling:
HTTP Error 404 Not Found (Body is empty) - The Resource name isn't found (e.g.: Call /v#/nodec instead of /v#/nodeb)
HTTP Error 405 Method Not Allowed (Body is empty) - Wrong HTTP VERB to known resource name *e.g.: Call HTTP GET v#/nodeb/x2-setup)
Table 1 – Common Type, Enum values
# | Attribute Type | Legal Values |
|---|---|---|
1 | Connection Status | UNKNOWN_CONNECTION_STATUS = 0; CONNECTED = 1; DISCONNECTED = 2; CONNECTED_SETUP_FAILED = 3; CONNECTING = 4; SHUTTING_DOWN = 5; SHUT_DOWN = 6; |
2 | Failure Type | UNKNOWN_TYPE = 0; |
3 | Node Type | UNKNOWN = 0; |
4 | Radio Network Layer Cause | UNKNOWN = 0; HANDOVER_DESIRABLE_FOR_RADIO_REASONS = 1; TIME_CRITICAL_HANDOVER = 2; RESOURCE_OPTIMISATION_HANDOVER = 3; REDUCE_LOAD_IN_SERVING_CELL = 4; PARTIAL_HANDOVER = 5; UNKNOWN_NEW_ENB_UE_X2AP_ID = 6; UNKNOWN_OLD_ENBME_UE_X2AP_ID = 7; UNKNOWN_PAIR_OF_UE_X2AP_ID = 8; HO_TARGET_NOT_ALLOWED = 9; TX2_RELOC_OVERALL_EXPIRY = 10; T_RELOC_PREP_EXPIRY = 11; CELL_NOT_AVAILABLE = 12; NO_RADIO_RESOURCES_AVAILABLE_IN_TARGET_CELL = 13; INVALID_MME_GROUP_ID = 14; UNKNOWN_MME_CODE = 15; ENCRYPTION_INTEGRITY_PROTECTION_ALGORITHMS_NOT_SUPPORTED = 16; REPORT_CHARACTERISTICS_EMPTY = 17; NO_REPORT_PERIODICITY = 18; EXISTING_MEASUREMENT_ID = 19; UNKNOWN_ENB_MEASUREMENT_ID = 20; MEASUREMENT_TEMPORARILY_NOT_AVAILABLE = 21; UNSPECIFIED = 22; LOAD_BALANCING = 23; HANDOVER_OPTIMISATION = 24; VALUE_OUT_OF_ALLOWED_RANGE = 25; MULTIPLE_E_RAB_ID_INSTANCES = 26; SWITCH_OFF_ONGOING = 27; NOT_SUPPORTED_QCI_VALUE = 28; MEASUREMENT_NOT_SUPPORTED_FOR_THE_OBJECT = 29; TDC_OVERALL_EXPIRY = 30; TDC_PREP_EXPIRY = 31; ACTION_DESIRABLE_FOR_RADIO_REASONS = 32; REDUCE_LOAD = 33; RESOURCE_OPTIMISATION = 34; TIME_CRITICAL_ACTION = 35; TARGET_NOT_ALLOWED = 36; NO_RADIO_RESOURCES_AVAILABLE = 37; INVALID_QOS_COMBINATION = 38; ENCRYPTION_ALGORITHMS_NOT_SUPPORTED = 39; PROCEDURE_CANCELLED = 40; RRM_PURPOSE = 41; IMPROVE_USER_BIT_RATE = 42; USER_INACTIVITY = 43; RADIO_CONNECTION_WITH_UE_LOST = 44; FAILURE_IN_THE_RADIO_INTERFACE_PROCEDURE = 45; BEARER_OPTION_NOT_SUPPORTED = 46; MCG_MOBILITY = 47; SCG_MOBILITY = 48; COUNT_REACHES_MAX_VALUE = 49; UNKNOWN_OLD_EN_GNB_UE_X2AP_ID = 50; PDCP_OVERLOAD = 51; |
5 | Transport Layer Cause | UNKNOWN = 0; TRANSPORT_RESOURCE_UNAVAILABLE = 1; UNSPECIFIED = 2; |
6 | Protocol Cause | UNKNOWN = 0; TRANSFER_SYNTAX_ERROR = 1; ABSTRACT_SYNTAX_ERROR_REJECT = 2; ABSTRACT_SYNTAX_ERROR_IGNORE_AND_NOTIFY = 3; MESSAGE_NOT_COMPATIBLE_WITH_RECEIVER_STATE = 4; SEMANTIC_ERROR = 5; UNSPECIFIED = 6; ABSTRACT_SYNTAX_ERROR_FALSELY_CONSTRUCTED_MESSAGE = 7; |
7 | Miscellaneous Cause | UNKNOWN = 0; CONTROL_PROCESSING_OVERLOAD = 1; HARDWARE_FAILURE = 2; OM_INTERVENTION = 3; NOT_ENOUGH_USER_PLANE_PROCESSING_RESOURCES = 4; UNSPECIFIED = 5; |
8 | Time To Wait | UNKNOWN_TIMEOUT = 0; V1S = 1; V2S = 2; V5S = 3; V10S = 4; V20S = 5; V60S = 6; |
9 | Type Of Error | UNKNOWN_ERROR = 0; NOT_UNDERSTOOD = 1; MISSING = 2; |
10 |