X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=E2Manager%2Fmodels%2Fe2_setup_response_message.go;h=04d63a1e779709edf260e3c8123fc59273167688;hb=05d983f73dd83441169a11704e494ab686fece0e;hp=fc2078851b21006a19c153c0a065abede60d6018;hpb=4449bba79c42804a0f9334047c08bd2619e777cd;p=ric-plt%2Fe2mgr.git diff --git a/E2Manager/models/e2_setup_response_message.go b/E2Manager/models/e2_setup_response_message.go index fc20788..04d63a1 100644 --- a/E2Manager/models/e2_setup_response_message.go +++ b/E2Manager/models/e2_setup_response_message.go @@ -69,8 +69,11 @@ var timeToWaitMap = map[TimeToWait]interface{}{ func NewE2SetupSuccessResponseMessage(plmnId string, ricId string, request *E2SetupRequestMessage) E2SetupResponseMessage { outcome := SuccessfulOutcome{} - outcome.Value.E2setupResponse.ProtocolIEs.E2setupResponseIEs = make([]E2setupResponseIEs, 2) outcome.ProcedureCode = "1" + + e2SetupRequestIes := request.E2APPDU.InitiatingMessage.Value.E2setupRequest.ProtocolIEs.E2setupRequestIEs + + outcome.Value.E2setupResponse.ProtocolIEs.E2setupResponseIEs = make([]E2setupResponseIEs, len(e2SetupRequestIes)) outcome.Value.E2setupResponse.ProtocolIEs.E2setupResponseIEs[0].ID = "4" outcome.Value.E2setupResponse.ProtocolIEs.E2setupResponseIEs[0].Value = GlobalRICID{GlobalRICID: struct { Text string `xml:",chardata"` @@ -78,25 +81,25 @@ func NewE2SetupSuccessResponseMessage(plmnId string, ricId string, request *E2Se RicID string `xml:"ric-ID"` }{PLMNIdentity: plmnId, RicID: ricId}} - functionsIdList := extractRanFunctionsIDList(request) - - if functionsIdList != nil { - outcome.Value.E2setupResponse.ProtocolIEs.E2setupResponseIEs[1].ID = "9" - outcome.Value.E2setupResponse.ProtocolIEs.E2setupResponseIEs[1].Value = RANfunctionsIDList{RANfunctionsIDList: struct { - Text string `xml:",chardata"` - ProtocolIESingleContainer []ProtocolIESingleContainer `xml:"ProtocolIE-SingleContainer"` - }{ProtocolIESingleContainer: functionsIdList}} + if len(e2SetupRequestIes) < 2 { + return E2SetupResponseMessage{E2APPDU: E2APPDU{Outcome: outcome}} } + outcome.Value.E2setupResponse.ProtocolIEs.E2setupResponseIEs[1].ID = "9" + outcome.Value.E2setupResponse.ProtocolIEs.E2setupResponseIEs[1].Value = RANfunctionsIDList{RANfunctionsIDList: struct { + Text string `xml:",chardata"` + ProtocolIESingleContainer []ProtocolIESingleContainer `xml:"ProtocolIE-SingleContainer"` + }{ProtocolIESingleContainer: extractRanFunctionsIDList(request)}} return E2SetupResponseMessage{E2APPDU: E2APPDU{Outcome: outcome}} } -func NewE2SetupFailureResponseMessage(timeToWait TimeToWait) E2SetupResponseMessage { +func NewE2SetupFailureResponseMessage(timeToWait TimeToWait, cause Cause) E2SetupResponseMessage { outcome := UnsuccessfulOutcome{} outcome.Value.E2setupFailure.ProtocolIEs.E2setupFailureIEs = make([]E2setupFailureIEs, 2) outcome.ProcedureCode = "1" outcome.Value.E2setupFailure.ProtocolIEs.E2setupFailureIEs[0].ID = "1" - outcome.Value.E2setupFailure.ProtocolIEs.E2setupFailureIEs[0].Value.Value = Cause{} + + outcome.Value.E2setupFailure.ProtocolIEs.E2setupFailureIEs[0].Value.Value = cause outcome.Value.E2setupFailure.ProtocolIEs.E2setupFailureIEs[1].ID = "31" outcome.Value.E2setupFailure.ProtocolIEs.E2setupFailureIEs[1].Value.Value = timeToWaitMap[timeToWait] return E2SetupResponseMessage{E2APPDU: E2APPDU{Outcome: outcome}} @@ -172,8 +175,8 @@ type ProtocolIESingleContainer struct { Text string `xml:",chardata"` RANfunctionIDItem struct { Text string `xml:",chardata"` - RanFunctionID string `xml:"ranFunctionID"` - RanFunctionRevision string `xml:"ranFunctionRevision"` + RanFunctionID uint32 `xml:"ranFunctionID"` + RanFunctionRevision uint32 `xml:"ranFunctionRevision"` } `xml:"RANfunctionID-Item"` } `xml:"value"` } @@ -211,24 +214,8 @@ type E2setupFailureIEs struct { } `xml:"value"` } -type Cause struct { - XMLName xml.Name `xml:"Cause"` - Text string `xml:",chardata"` - Transport struct { - Text string `xml:",chardata"` - TransportResourceUnavailable string `xml:"transport-resource-unavailable"` - } `xml:"transport"` -} - func extractRanFunctionsIDList(request *E2SetupRequestMessage) []ProtocolIESingleContainer { - - setupRequestIes := request.E2APPDU.InitiatingMessage.Value.E2setupRequest.ProtocolIEs.E2setupRequestIEs - - if len(setupRequestIes) < 2 { - return nil - } - - list := &setupRequestIes[1].Value.RANfunctionsList + list := &request.E2APPDU.InitiatingMessage.Value.E2setupRequest.ProtocolIEs.E2setupRequestIEs[1].Value.RANfunctionsList ids := make([]ProtocolIESingleContainer, len(list.ProtocolIESingleContainer)) for i := 0; i < len(ids); i++ { ids[i] = convertToRANfunctionID(list, i)