...
Upon receiving a terminate request clean up all resources.
2.2. Child Thread(s)
...
2.2.1 Initialization
In this state, perform initialization, and transition to Cluster formation state.
...
- Start notif_timer and wait for more notifications
- If a new notification is received, transition to Cluster expansion statemodification state. If notif_timer expires, transition to Trigger OOF state.
2.2.4. Cluster
...
modification
- If a cell that already exists in the cluster has sent a notification (for neighbor-list change), update the cell's neighbors appropriately in the existing cluster. Otherwise, 'attach' the cell appropriately in the existing cluster, and update the cell's neighborsAttach the cell and its neighbors appropriately to the existing cluster.
- For each of the neighbors, fetch the neighbor list (via REST API) from SDN-R Config DB (i.e., fetch neighbor of neighbors of the cell that sent the neighbor list change notification).
- Extend Modify/extend the cluster appropriately.
- Determine collision/confusion by calling method determine_collision_confusion.
- Based on number of collisions/confusions and config policy, determine if OOF has to be triggered or more notifications should be awaited (handle also timeout case).
...
- If the main thread triggers a buffered notification to be handled, start buf_timer (if not started already) to buffer the notification (pre-configured value), if not already started (Note), and store the notification contents.
- Upon expiry of buf_timer, process the received (and stored) notifications by transitioning to Cluster ExpansionModification state.
- If new notifications are received when in this state, then simply store the notifications check on whether a notification was received and buffered for the same cell earlier, and if yes, discard the earlier notification (i.e., retain only the latest unprocessed notification for a cell). Simply store the notification and remain in this state.
...