-
Story
-
Resolution: Done
-
Medium
-
None
-
None
Requirements
We want to enlarge the RAN in the Response of Get All Nodeb States
- The End Point URL is changed - GET http://localhost:3800/v1/nodeb/states
- We will build one Handler to update state
- We will handle one handler (Ran List Handler) which is the only one who updates it.
- The Flow of the calls that also update Redis:
-
- Lock (Between mutual call to this Handler)
- Read RAN List to memory
- Update the memory
- Update the Redis
- Unlock
Since we don't support 2 E2Ms running in parallel, no need to Lock the DB
- Note that the following should call it, and only once ( ! ) :
- Setup From RAN
- Lost connection
- Red Button
- Insert eNB
- Delete eNB
- E2T Initialize
- Keep Alive
In other words - everyone who change RAN Status OR Add / Delete RAN !
- The REST API Get All Nodeb States will read from handler, just from memory.
- The Query RNIB - no change - continue to read directly from RNIB.
Acceptance
- Assuming there are already RAN 1 & RAN 2, with their Node (Name & ID) and Status.
- See in case new Setup from RAN 3 - the stat is added
- See in case Lost Connection from RAN 3 - the stat is updated
- See in case another Setup from RAN 3 - the stat is updated
- See in case KA "kills" E2 Instance - the stat is updated
- See in case connected and E2 Instance initialized - the stat is updated
- See in case Red Button, all 3 RANs are shutting down, assuming 2 got Lost connection - these 2 moved to Shutdown. At the end of the timer - also the 3rd is Shut down.
- Insert new eNB
- Delete existing eNB
*
Test plan
Given | When | Then |
---|---|---|
- | E2 Setup is triggered for new RAN "gnb_123" | RAN is added successfully PUBLISH is called with RAN_CONNECTION_STATUS_CHANGE channel & gnb_123_CONNECTED event gnb_123 NbIdentity ConnectionStatus is CONNECTED |
Existing RAN "gnb_123" with ConnectionStatus = CONNECTED | LostConnection is triggered for RAN "gnb_123" | RAN is dissociated successfully PUBLISH is called with RAN_CONNECTION_STATUS_CHANGE channel & gnb_123_DISCONNECTED event gnb_123 NbIdentity ConnectionStatus is DISCONNECTED |
Existing RAN "gnb_123" with ConnectionStatus = DISCONNECTED | E2 Setup is triggered for existing RAN "gnb_123" | RAN is updated successfully PUBLISH is called with RAN_CONNECTION_STATUS_CHANGE channel & gnb_123_CONNECTED event gnb_123 NbIdentity ConnectionStatus is CONNECTED |
Existing RAN "gnb_123" with ConnectionStatus = CONNECTED | KA kills E2T Instance | gnb_123 NbIdentity ConnectionStatus is DISCONNECTED |
Existing RAN "gnb_123" with ConnectionStatus = CONNECTED | E2 Instance init | gnb_123 NbIdentity ConnectionStatus is DISCONNECTED |
- | Insert two new eNBs: enb_123 & enb_456 |
eNBs were added successfully. PUBLISH was called for both RANs with RAN_MANIPULATION channel & <RAN_NAME>_ADDED event enb_123 NbIdentity ConnectionStatus is DISCONNECTED enb_456 NbIdentity ConnectionStatus is DISCONNECTED |
Existing eNB enb_123 | Delete eNB enb_123 | eNB had been removed successfully. PUBLISH was called with RAN_MANIPULATION channel & enb_123_DELETED event |
Existing CONNECTED RANS gnb_123 and enb_456 | Red Button was triggered | Both RANs are SHUT_DOWN |