X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=E2Manager%2Fmodels%2Fe2_setup_request_message.go;h=1803a739537347e2a824851d7d35bb23880b52b6;hb=70a16499e8c7042383f3fe115e6180f398dbab7d;hp=d07f4df889cc92051923b6fbf55a10cb123e121b;hpb=a75da9a56d61ca4754650d44a54bbf0b04f610d1;p=ric-plt%2Fe2mgr.git diff --git a/E2Manager/models/e2_setup_request_message.go b/E2Manager/models/e2_setup_request_message.go index d07f4df..1803a73 100644 --- a/E2Manager/models/e2_setup_request_message.go +++ b/E2Manager/models/e2_setup_request_message.go @@ -21,7 +21,11 @@ package models import ( "encoding/xml" + "errors" + "fmt" "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities" + "strconv" + "strings" ) type E2SetupRequestMessage struct { @@ -98,26 +102,7 @@ type E2SetupRequestMessage struct { } `xml:"global-eNB-ID"` } `xml:"eNB"` } `xml:"GlobalE2node-ID"` - RANfunctionsList struct { - Text string `xml:",chardata"` - ProtocolIESingleContainer []struct { - Text string `xml:",chardata"` - ID string `xml:"id"` - Criticality struct { - Text string `xml:",chardata"` - Reject string `xml:"reject"` - } `xml:"criticality"` - Value struct { - Text string `xml:",chardata"` - RANfunctionItem struct { - Text string `xml:",chardata"` - RanFunctionID string `xml:"ranFunctionID"` - RanFunctionDefinition string `xml:"ranFunctionDefinition"` - RanFunctionRevision string `xml:"ranFunctionRevision"` - } `xml:"RANfunction-Item"` - } `xml:"value"` - } `xml:"ProtocolIE-SingleContainer"` - } `xml:"RANfunctions-List"` + RANfunctionsList RANfunctionsList `xml:"RANfunctions-List"` } `xml:"value"` } `xml:"E2setupRequestIEs"` } `xml:"protocolIEs"` @@ -127,6 +112,47 @@ type E2SetupRequestMessage struct { } `xml:"E2AP-PDU"` } +type RANfunctionsList struct { + Text string `xml:",chardata"` + ProtocolIESingleContainer []struct { + Text string `xml:",chardata"` + ID string `xml:"id"` + Criticality struct { + Text string `xml:",chardata"` + Reject string `xml:"reject"` + } `xml:"criticality"` + Value struct { + Text string `xml:",chardata"` + RANfunctionItem struct { + Text string `xml:",chardata"` + RanFunctionID string `xml:"ranFunctionID"` + RanFunctionDefinition string `xml:"ranFunctionDefinition"` + RanFunctionRevision string `xml:"ranFunctionRevision"` + } `xml:"RANfunction-Item"` + } `xml:"value"` + } `xml:"ProtocolIE-SingleContainer"` +} + +func (m *E2SetupRequestMessage) GetExtractRanFunctionsList()([]*entities.RanFunction, error){ + list :=m.E2APPDU.InitiatingMessage.Value.E2setupRequest.ProtocolIEs.E2setupRequestIEs[1].Value.RANfunctionsList.ProtocolIESingleContainer + funcs := make([]*entities.RanFunction, len(list)) + for i:=0; i < len(funcs); i++{ + funcs[i] = &entities.RanFunction{} + id, err := strconv.ParseUint(list[i].Value.RANfunctionItem.RanFunctionID, 10, 32) + if err != nil { + return nil, errors.New(fmt.Sprintf("#e2_setup_request_message.GetExtractRanFunctionsList - Failed parse uint RanFunctionID from %s", list[i].Value.RANfunctionItem.RanFunctionID)) + } + funcs[i].RanFunctionId = uint32(id) + rev, err := strconv.ParseUint(list[i].Value.RANfunctionItem.RanFunctionRevision, 10, 32) + if err != nil { + return nil, errors.New(fmt.Sprintf("#e2_setup_request_message.GetExtractRanFunctionsList - Failed parse uint RanFunctionRevision from %s", list[i].Value.RANfunctionItem.RanFunctionRevision)) + } + funcs[i].RanFunctionDefinition = m.trimSpaces(list[i].Value.RANfunctionItem.RanFunctionDefinition) + funcs[i].RanFunctionRevision = uint32(rev) + } + return funcs, nil +} + func (m *E2SetupRequestMessage) GetNodeType() entities.Node_Type{ if id := m.E2APPDU.InitiatingMessage.Value.E2setupRequest.ProtocolIEs.E2setupRequestIEs[0].Value.GlobalE2nodeID.GNB.GlobalGNBID.PlmnID; id!= ""{ return entities.Node_GNB @@ -145,32 +171,36 @@ func (m *E2SetupRequestMessage) GetNodeType() entities.Node_Type{ func (m *E2SetupRequestMessage) GetPlmnId() string{ if id := m.E2APPDU.InitiatingMessage.Value.E2setupRequest.ProtocolIEs.E2setupRequestIEs[0].Value.GlobalE2nodeID.GNB.GlobalGNBID.PlmnID; id!= ""{ - return id + return m.trimSpaces(id) } if id := m.E2APPDU.InitiatingMessage.Value.E2setupRequest.ProtocolIEs.E2setupRequestIEs[0].Value.GlobalE2nodeID.EnGNB.GlobalGNBID.PlmnID; id!= ""{ - return id + return m.trimSpaces(id) } if id := m.E2APPDU.InitiatingMessage.Value.E2setupRequest.ProtocolIEs.E2setupRequestIEs[0].Value.GlobalE2nodeID.ENB.GlobalENBID.PlmnID; id!= ""{ - return id + return m.trimSpaces(id) } if id := m.E2APPDU.InitiatingMessage.Value.E2setupRequest.ProtocolIEs.E2setupRequestIEs[0].Value.GlobalE2nodeID.NgENB.GlobalNgENBID.PlmnID; id!= ""{ - return id + return m.trimSpaces(id) } return "" } func (m *E2SetupRequestMessage) GetNbId() string{ if id := m.E2APPDU.InitiatingMessage.Value.E2setupRequest.ProtocolIEs.E2setupRequestIEs[0].Value.GlobalE2nodeID.GNB.GlobalGNBID.GnbID.GnbID; id!= ""{ - return id + return m.trimSpaces(id) } if id := m.E2APPDU.InitiatingMessage.Value.E2setupRequest.ProtocolIEs.E2setupRequestIEs[0].Value.GlobalE2nodeID.EnGNB.GlobalGNBID.GnbID.GnbID; id!= ""{ - return id + return m.trimSpaces(id) } if id := m.E2APPDU.InitiatingMessage.Value.E2setupRequest.ProtocolIEs.E2setupRequestIEs[0].Value.GlobalE2nodeID.ENB.GlobalENBID.GnbID.GnbID; id!= ""{ - return id + return m.trimSpaces(id) } if id := m.E2APPDU.InitiatingMessage.Value.E2setupRequest.ProtocolIEs.E2setupRequestIEs[0].Value.GlobalE2nodeID.NgENB.GlobalNgENBID.GnbID.GnbID; id!= ""{ - return id + return m.trimSpaces(id) } return "" +} + +func (m *E2SetupRequestMessage) trimSpaces(str string) string { + return strings.NewReplacer(" ", "", "\n", "").Replace(str) } \ No newline at end of file