E2 Manager R5 Interface Design (Draft)

E2 Manager R5 Interface Design (Draft)

Revision Description

Document status

DRAFT

Document owner

Avinoam Bernstein

Owner Details

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

 

Revision History

R5 Release

Revision Description

Time

Swagger

Ready

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

#

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

 

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

#

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

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

 

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

#

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

UNKNOWN_ERROR = 0;

NOT_UNDERSTOOD = 1;

MISSING = 2;

10