}
type E2IfState struct {
- mutex sync.Mutex
- control *Control
- NbIdMap map[string]string
+ mutex sync.Mutex
+ control *Control
+ NbIdMap map[string]string
+ NbIdStatusMap map[string]string
}
func (e *E2IfState) Init(c *Control) {
e.control = c
e.NbIdMap = make(map[string]string, 0)
+ e.NbIdStatusMap = make(map[string]string, 0)
e.ReadE2ConfigurationFromRnib()
err := e.SubscribeChannels()
if err != nil {
}
xapp.Logger.Debug("E2 CONNECTED. NbId=%s", nbId)
e.NbIdMap[nbId] = nbId
+ e.NbIdStatusMap[nbId] = "CONNECTED"
} else if strings.Contains(events[0], "_DISCONNECTED") {
e.control.UpdateCounter(cE2StateChangedToDown)
nbId, err := ExtractNbiIdFromString(events[0])
}
xapp.Logger.Debug("E2 DISCONNECTED. NbId=%s", nbId)
if _, ok := e.NbIdMap[nbId]; ok {
+ e.NbIdStatusMap[nbId] = "DISCONNECTED"
delete(e.NbIdMap, nbId)
e.control.registry.DeleteAllE2Subscriptions(nbId, e.control)
}
xapp.Logger.Error("NotificationCb _UNDER_RESET %v ", err)
return
}
+ e.NbIdStatusMap[nbId] = "UNDER_RESET"
xapp.Logger.Debug("E2 Under Reset. NbId=%s", nbId)
if _, ok := e.NbIdMap[nbId]; ok {
e.control.registry.DeleteAllE2Subscriptions(nbId, e.control)
}
}
+func (e *E2IfState) IsE2ConnectionUnderReset(nbId *string) bool {
+
+ if status := e.NbIdStatusMap[*nbId]; status == "UNDER_RESET" {
+ return true
+ } else {
+ return false
+ }
+}
+
func ExtractNbiIdFromString(s string) (string, error) {
// Expected string formats are below