ENDC/X2 Setup Response / Setup Failure Response Design


1. Current State

There are 4 handlers which replicate code:

Handler

Current BL

ENDC Setup Response

  • Retrieve request from session

  • Unpack and return protobuf using unpackEndcX2SetupResponseAndExtract

  • Create NEW NodebInfo entity and NbIdentity entity and populate it with:

    • RanName, RanIp, RanPort FROM the session’s request

    • GlobalNbId from gnbId (protobuf)

    • Configuration from gnb (protobuf)

    • ConnectionStatus = CONNECTED

    • E2ApplicationProtocol = ENDC_X2_SETUP_REQUEST

    • NodeType = Node_GNB

  • SaveNodeb

  • Delete from session

X2 Setup Response

  • Retrieve request from session

  • Unpack and return protobuf using unpackX2SetupResponseAndExtract

  • Create NEW NodebInfo entity and NbIdentity entity and populate it with:

    • RanName, RanIp, RanPort FROM the session’s request

    • GlobalNbId from enbId (protobuf)

    • Configuration from enb (protobuf)

    • ConnectionStatus = CONNECTED

    • E2ApplicationProtocol = X2_SETUP_REQUEST

    • NodeType = Node_ENB

  • SaveNodeb

ENDC Setup Failure Response

  • Retrieve request from session

  • Unpack and return protobuf using unpackEndcX2SetupFailureResponseAndExtract

  • Create NEW NodebInfo entity and NbIdentity entity and populate it with:

    • RanName, RanIp, RanPort FROM the session’s request

    • SetupFailure from failureResponse (protobuf)

    • FailureType = ENDC_X2_SETUP_FAILURE

    • ConnectionStatus = CONNECTED_SETUP_FAILED

  • SaveNodeb

X2 Setup Failure Response

  • Retrieve request from session

  • Unpack and return protobuf using unpackX2SetupFailureResponseAndExtract

  • Create NEW NodebInfo entity and NbIdentity entity and populate it with:

    • RanName, RanIp, RanPort FROM the session’s request

    • SetupFailure from failureResponse (protobuf)

    • FailureType = X2_SETUP_FAILURE

    • ConnectionStatus = CONNECTED_SETUP_FAILED

  • SaveNodeb

2. Proposed Solution


3. Sequence Diagram


4. Test Plan

  • Valid RAN Connection Status = CONNECTED or CONNECTING

  • In both Setup / Setup Failure flows connection attempts shall be reset

Type

Test Case

Expected Behavior

SAD

GetNodeb failure

Log error and return

SAD

GetNodeb success
Invalid RAN Connection Status

Log error and return

HAPPY

GetNodeb success
Valid RAN Connection Status
Valid X2 setup response payload
SaveNodeb success

Nodeb should be updated with enb data and saved to DB

HAPPY

GetNodeb success
Valid RAN Connection Status
Valid ENDC setup response payload
SaveNodeb success

Nodeb should be updated with gnb data and saved to DB

HAPPY

GetNodeb success
Valid Connection Status
Valid X2 setup failure response payload
SaveNodeb success

Nodeb should be updated with failure data and saved to DB

HAPPY

GetNodeb success

Valid RAN Connection Status

Valid ENDC setup failure response payload

SaveNodeb success

Nodeb should be updated with failure data and saved to DB

SAD

GetNodeb success

Valid RAN Connection Status

Invalid payload

Log error and return

SAD

GetNodeb success
Valid Ran Connection Status
Valid payload
SaveNodeb failure

Log error and return