X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=agent%2Fpkg%2Fnbi%2Fnbi.go;h=d86de578434043d125af6e5211098a213ac63ffb;hb=100d755380d0af933a8b803d6b0c7a2411f01fab;hp=b191db51faafd0b275aacc506fe21fbe87894456;hpb=6c40808ea8d22b260e2f9db53dba15e748e7267e;p=ric-plt%2Fo1.git diff --git a/agent/pkg/nbi/nbi.go b/agent/pkg/nbi/nbi.go index b191db5..d86de57 100755 --- a/agent/pkg/nbi/nbi.go +++ b/agent/pkg/nbi/nbi.go @@ -306,35 +306,65 @@ func nbiGnbStateCB(session *C.sr_session_ctx_t, module *C.char, xpath *C.char, r } gnbs, err := rnib.GetListGnbIds() - if err != nil || len(gnbs) == 0 { - log.Info("Rnib.GetListGnbIds() returned elementCount=%d err:%v", len(gnbs), err) - return C.SR_ERR_OK - } + log.Info("Rnib.GetListGnbIds() returned elementCount=%d err:%v", len(gnbs), err) + if err == nil && len(gnbs) > 0 { + for _, gnb := range gnbs { + ranName := gnb.GetInventoryName() + info, err := rnib.GetNodeb(ranName) + if err != nil { + log.Error("GetNodeb() failed for ranName=%s: %v", ranName, err) + continue + } - for _, gnb := range gnbs { - ranName := gnb.GetInventoryName() - info, err := rnib.GetNodeb(ranName) - if err != nil { - log.Error("GetNodeb() failed for ranName=%s: %v", ranName, err) - continue + prot := nbiClient.E2APProt2Str(int(info.E2ApplicationProtocol)) + connStat := nbiClient.ConnStatus2Str(int(info.ConnectionStatus)) + ntype := nbiClient.NodeType2Str(int(info.NodeType)) + + log.Info("gNB info: %s -> %s %s %s -> %s %s", ranName, prot, connStat, ntype, gnb.GetGlobalNbId().GetPlmnId(), gnb.GetGlobalNbId().GetNbId()) + + path := fmt.Sprintf("/o-ran-sc-ric-gnb-status-v1:ric/nodes/node[ran-name='%s']", ranName) + nbiClient.CreateNewElement(session, parent, path, "ran-name", ranName) + nbiClient.CreateNewElement(session, parent, path, "ip", info.Ip) + nbiClient.CreateNewElement(session, parent, path, "port", fmt.Sprintf("%d", info.Port)) + nbiClient.CreateNewElement(session, parent, path, "plmn-id", gnb.GetGlobalNbId().GetPlmnId()) + nbiClient.CreateNewElement(session, parent, path, "nb-id", gnb.GetGlobalNbId().GetNbId()) + nbiClient.CreateNewElement(session, parent, path, "e2ap-protocol", prot) + nbiClient.CreateNewElement(session, parent, path, "connection-status", connStat) + nbiClient.CreateNewElement(session, parent, path, "node", ntype) } + } - prot := nbiClient.E2APProt2Str(int(info.E2ApplicationProtocol)) - connStat := nbiClient.ConnStatus2Str(int(info.ConnectionStatus)) - ntype := nbiClient.NodeType2Str(int(info.NodeType)) - - log.Info("gNB info: %s -> %s %s %s -> %s %s", ranName, prot, connStat, ntype, gnb.GetGlobalNbId().GetPlmnId(), gnb.GetGlobalNbId().GetNbId()) + //Check if any Enbs are connected to RIC + enbs, err2 := rnib.GetListEnbIds() + log.Info("Rnib.GetListEnbIds() returned elementCount=%d err:%v", len(gnbs), err) + if err2 == nil || len(enbs) > 0 { + log.Info("Getting Enb details from list of Enbs") + for _, enb := range enbs { + ranName := enb.GetInventoryName() + info, err := rnib.GetNodeb(ranName) + if err != nil { + log.Error("GetNodeb() failed for ranName=%s: %v", ranName, err) + continue + } - path := fmt.Sprintf("/o-ran-sc-ric-gnb-status-v1:ric/nodes/node[ran-name='%s']", ranName) - nbiClient.CreateNewElement(session, parent, path, "ran-name", ranName) - nbiClient.CreateNewElement(session, parent, path, "ip", info.Ip) - nbiClient.CreateNewElement(session, parent, path, "port", fmt.Sprintf("%d", info.Port)) - nbiClient.CreateNewElement(session, parent, path, "plmn-id", gnb.GetGlobalNbId().GetPlmnId()) - nbiClient.CreateNewElement(session, parent, path, "nb-id", gnb.GetGlobalNbId().GetNbId()) - nbiClient.CreateNewElement(session, parent, path, "e2ap-protocol", prot) - nbiClient.CreateNewElement(session, parent, path, "connection-status", connStat) - nbiClient.CreateNewElement(session, parent, path, "node", ntype) + prot := nbiClient.E2APProt2Str(int(info.E2ApplicationProtocol)) + connStat := nbiClient.ConnStatus2Str(int(info.ConnectionStatus)) + ntype := nbiClient.NodeType2Str(int(info.NodeType)) + + log.Info("eNB info: %s -> %s %s %s -> %s %s", ranName, prot, connStat, ntype, enb.GetGlobalNbId().GetPlmnId(), enb.GetGlobalNbId().GetNbId()) + + path := fmt.Sprintf("/o-ran-sc-ric-gnb-status-v1:ric/nodes/node[ran-name='%s']", ranName) + nbiClient.CreateNewElement(session, parent, path, "ran-name", ranName) + nbiClient.CreateNewElement(session, parent, path, "ip", info.Ip) + nbiClient.CreateNewElement(session, parent, path, "port", fmt.Sprintf("%d", info.Port)) + nbiClient.CreateNewElement(session, parent, path, "plmn-id", enb.GetGlobalNbId().GetPlmnId()) + nbiClient.CreateNewElement(session, parent, path, "nb-id", enb.GetGlobalNbId().GetNbId()) + nbiClient.CreateNewElement(session, parent, path, "e2ap-protocol", prot) + nbiClient.CreateNewElement(session, parent, path, "connection-status", connStat) + nbiClient.CreateNewElement(session, parent, path, "node", ntype) + } } + return C.SR_ERR_OK } @@ -432,5 +462,6 @@ func (n *Nbi) testGnbStateCB(module string) bool { type iRnib interface { GetListGnbIds() ([]*xapp.RNIBNbIdentity, xapp.RNIBIRNibError) + GetListEnbIds() ([]*xapp.RNIBNbIdentity, xapp.RNIBIRNibError) GetNodeb(invName string) (*xapp.RNIBNodebInfo, xapp.RNIBIRNibError) }