E2 Manager R3 Interface Design
Document status | DRAFT |
|---|---|
Document owner | |
Owner Details | +972-54-2891166, ab600d@intl.att.com |
- 1 API Request Overview
- 2 Standard API Request Headers
- 3 RESTful Web Services Interface Specification
- 4 Error Handling
- 5 Table 1 – Common Type, Enum values
- 6 X2 Setup Request
- 7 ENDC Setup Request
- 8 Health Check Request
- 9 Get NodeB Request
- 10 Shut Down Request
- 11 Get All NodeB Request
- 12 Reset nodeb Request
- 13 Get All E2T Request
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 |
|---|---|---|---|
1 | X2 Setup Request Message | /v#/nodeb/x2-setup | POST |
2 | ENDC Setup Request Message | /v#/nodeb/endc-setup | POST |
3 | Health Check | /v#/health | GET |
4 | Get nodeb data | /v#/nodeb/<ranName> | GET |
5 | Shut Down | /v#/nodeb/shutdown | PUT |
6 | Get All nodeb | /v#/nodeb/ids | GET |
7 | Reset nodeb | /v#/nodeb/<ranName>/reset * | PUT |
8 | Get All E2T | /v#/e2t/list | GET |
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 | |
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 Error | HTTP 202 Accepted
| HTTP Error 400 Bad Request
| HTTP Error 404 Not Found | HTTP Error 415 Unsupported Media Type | HTTP Error 500 Internal Server Error
| HTTP Error 503 Service Unavailable
| |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Error Code | 511 NO ROUTING MANAGER | 401 | 402 | 403 | 405 | 404 | 415 | 500 | 501 INTERNAL ERROR | 502 RMR ERROR | 510 NO E2T INSTANCE | 511 NO ROUTING MANAGER | |
X2 / ENDC Setup | POST |
| Yes | Yes | Yes |
|
| Yes | Yes | Yes | Yes | Yes | Yes |
Shut Down | PUT | Yes |
|
|
| Yes |
|
| Yes | Yes | Yes |
|
|
Reset nodeb | PUT |
| Yes | Yes | Yes |
| Yes | Yes | Yes | Yes | Yes |
|
|
Get nodeb | GET |
|
|
|
|
| Yes |
| Yes | Yes |
|
|
|
Get All nodeb | GET |
|
|
|
|
|
|
| Yes | Yes |
|
|
|
Get All E2T | GET |
|
|
|
|
|
|
| Yes | Yes |
|
|
|
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/ids instead of /v#/nodeb/ids)
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 |