References
Use case overview and impacted components are described in the 5G OOF PCI optimization main wiki page.
1. Architecture
The architecture below depicts the SON-Handler MS as a part of DCAE. Only the relevant interactions and components are shown.
...
This is a PostgreSQL DB, and is intended to persist information such as the following:
- PCI-Handler MS Config information (e.g., thresholds, timer values, OOF algorithm name, etc.)
- Pre-processing results and other related information (e.g., neighbor list)
- Buffered notifications (i.e., notifications not yet processed at all)
- State information
- Association between pnf-name and CellId
- PM/FM data
1.3. DMaaP Client
This is responsible for registering with the DMaaP client for the DMaaP notifications from SDN-R and VES-Collector, and to Policy.
2. Core Logic components and Pre-processing algorithm
...
The main actions in the various states are listed below:
Gliffy | ||||
---|---|---|---|---|
|
2.1.1. Initialization
In this state, the following actions are performed: Gliffy
- Fetch Config Policy from CBS.
- Load any local configuration.
- Load data persisted in DB.
- Trigger DMaaP thread for registration of DMaaP topics (SDN-R, VES-Collector and Policy interfaces).
...
2.1.2.4. Policy response handling
- Forward the response from Policy to the appropriate child thread - it could be a PCI-ANR child thread (in case of PCI-ANR optimization), or PM child thread (in case of autonomous ANR update by PM child thread).
2.1.2.5. Child Thread Status update handling
Clean up the resources associated with the child thread (including cluster details), and kill the child thread.
2.1.3. Terminating
Upon receiving a terminate request clean up all resources.
2.2. PCI-ANR Child Thread(s)
...
- Response from policy is handled by a separate thread.
- When positive acknowledgement is received from the policy the cells in the response are removed from the table and when negative acknowledgement is received the negative_ack count for the cell is increased and updated in the table. When no response is received no changes are made.
- When negative_ack count of a particular cell increases beyond a threshold, it is shifted to another table.
2.1.2.5. Child Thread Status update handling
Clean up the resources associated with the child thread (including cluster details), and kill the child thread.
2.1.3. Terminating
Upon receiving a terminate request clean up all resources.
2.2. PCI-ANR Child Thread(s)
These child threads are spawned for handling PCI optimization primarily, though they may also trigger PCI-ANR joint optimization in some cases. The various states and associated actions are described below.
Gliffy | ||||
---|---|---|---|---|
|
|
2.2.1 Initialization
In this state, perform initialization, and based on the type of notification, go to either Section 2.2.1.1 or 2.2.1.2 for next actions.
...
- Send a PCI_opt request to OOF with cells triggering the request along with the trigger type
- Store details of request in DB.
- Wait for OOF optimization result.
Upon trigger from main thread with OOF PCI optimization result, prepare and send DMaaP messages to Policy: for the cells whose PCI value has changed, as well as to all the neighbors of the cells whose PCI value has changed. The pnf-name corresponding to the cell-ids can be fetched from Config DB of SDN-R (using REST API). (Note: The layout of the message from SDN-R to RAN is available in the SDN-R sub-page).
- Start Policy_rsp timer and wait for Policy response by going to "Wait for Policy Response" state (Section 2.2.6).
...
Prepare DMaaP messages to Policy for the cells whose PCI value has changed, as well as to all the neighbors of the cells whose PCI value has changed. The pnf-name corresponding to the cell-ids can be fetched from Config DB of SDN-R (using REST API). (Note: The layout of the message from SDN-R to RAN is available in the SDN-R sub-page)
fi
if response contains NRT updates (corresponding to ANR)
Update/prepare DMaaP messages to Policy for the cells whose neighbors have undergone updates (with indication "HO prohibited"). The pnf-name corresponding to the cell-ids can be fetched from Config DB of SDN-R (using REST API). (Note: The layout of the message from SDN-R to RAN is available in the SDN-R sub-page)
fi
Send prepared message(s) to Policy.
- Start Policy_rsp timer and wait for Policy response by going to "Wait for Policy Response" state (Section 2.2.6).
2.2.6.
...
Handling Policy Response
...
- Response from policy is handled by a separate thread.
- When positive acknowledgement is received from the policy, the cells in the response are removed from the table and when negative acknowledgement is received the negative_ack count for the cell is increased and updated in the table. When no response is received no changes are made.
- When negative_ack count of a particular cell increases beyond a threshold, it is shifted to another table.
2.2.7. Wait for RAN updates
...
This child thread perform all PM-related computations, and initiate autonomous ANR updates based on HO metrics.
Gliffy | ||
---|---|---|
|
...
|
...
|
2.3.1. Initialization
In this state, all data structures are initialized. This includes any processing-pending PM data, processed PM data and populating details from DB.
...
When an indication that PCI-ANR child thread(s)' actions are completed is received, go to Step 2.3.2.2.1. If any PM inputs are received, go to Step 2.3.2.
2.3.4.
...
Handling Policy response
...
- Response from policy is handled by a separate thread.
- When positive acknowledgement is received from the policy, the cells in the response are removed from the table and when negative acknowledgement is received the negative_ack count for the cell is increased and updated in the table. When no response is received no changes are made.
- When negative_ack count of a particular cell increases beyond a threshold, it is shifted to another table.