E2 Manager Interface Design - R4 Draft (Not actual)

E2 Manager Interface Design - R4 Draft (Not actual)

 

 

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

 

X2 Setup Request Message Request  (deprecated)

/v#/nodeb/x2-setup

POST

 

ENDC Setup Request Message Request   (deprecated)

/v#/nodeb/endc-setup

POST

1

Health Check Request 

/v#/health

GET

2

Get nodeb data Request (Changed)

/v#/nodeb/<ranName>

GET

3

Update GNB Request   (New)

/v#/nodeb/<ranName>/update

PUT

4

Shut Down Request 

/v#/nodeb/shutdown

PUT

5

Get All nodeb States Request (Changed, Stretch Goal)

/v#/nodeb/states

GET

6

Get NodeB State Request (New, Stretch Goal)

/v#/nodeb/states/<ranName>

GET

7

RAN Health Check Request  (New, Stretch Goal)

/v#/nodeb/health

PUT

 

Reset nodeb Request (deprecated)

/v#/nodeb/<ranName>/reset *

PUT

8

Get All E2T Request 

/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

406

No RAN in Connected State

e.g.: RAN Health Check and no one in Connected

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

202 Accepted

HTTP Error

400 Bad Request

HTTP Error

404 Not Found

HTTP Error

500 Internal Server Error

Get nodeb data

 

 

404

500, 501

Update GNB

 

 401, 402

404

500, 501

Shut Down

511

405

 

500, 501, 502

Get All nodeb States

 

 

 

500, 501

Get NodeB State

 

 

404

500, 501

RAN Health Check

 

 

406

500, 501

Get All E2T 

 

 

 

500, 501

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

Triggering Message

UNKNOWN_MESSAGE = 0;

INITIATING_MESSAGE = 1;

SUCCESSFUL_OUTCOME = 2;

UNSUCCESSFUL_OUTCOME = 3;

11

Criticality

UNKNOWN_CRITICALITY = 0;

REJECT = 1;

IGNORE = 2;

NOTIFY = 3;

12

Bandwidth Reduced SI

UNKNOWN_BANDWIDTH_REDUCED_SI = 0;

SCHEDULED = 1;

13

Eutra Mode / Nr Mode

UNKNOWN = 0;

FDD = 1;

TDD = 2;

14

Freq Band Indicator Priority

UNKNOWN_FREQ_BAND_INDICATOR_PRIORITY = 0;

NOT_BROADCASTED = 1;

BROADCASTED = 2;

15

Number Of Antenna Ports

UNKNOWN_NUMBER_OF_ANTENNA_PORTS = 0;

AN1 = 1;

AN2 = 2;

AN4 = 3;

16

Transmission Bandwidth

UNKNOWN_TRANSMISSION_BANDWIDTH = 0;

BW6 = 1;

BW15 = 2;

BW25 = 3;

BW50 = 4;

BW75 = 5;

BW100 = 6;

BW1 = 7;

17

Subframe Allocation Type

UNKNOWN_SUBFRAME_ALLOCATION_TYPE = 0;

ONE_FRAME = 1;