E2 Manager R3 Interface Design

E2 Manager R3 Interface Design

 

Document status

DRAFT

Document owner

Avinoam Bernstein

Owner Details

+972-54-2891166,   ab600d@intl.att.com

 

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

#

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

#

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

#

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

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

 

 

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
CORRUPTED JSON
402
VALIDATION ERROR
403
RAN IN WRONG STATE
405
COMMAND ALREADY IN-PROGRESS
404
RESOURCE ID NOT FOUND
415
HEADER VALIDATION ERROR
500
RNIB ERROR
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

#

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;
X2_SETUP_FAILURE = 1;
ENDC_X2_SETUP_FAILURE = 2;

3

Node Type

UNKNOWN = 0;
ENB = 1;
GNB = 2;

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