From: idanshal Date: Tue, 2 Jun 2020 10:15:51 +0000 (+0300) Subject: [RIC-436] Fix E2 Setup Response population X-Git-Tag: R5_RC~78 X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=commitdiff_plain;h=27feca449ac9a0693b37ff22a900f2534c244387;p=ric-plt%2Fe2mgr.git [RIC-436] Fix E2 Setup Response population Change-Id: I88924d01a8a84785b7d628b59b5b0a564c449418 Signed-off-by: idanshal --- diff --git a/E2Manager/container-tag.yaml b/E2Manager/container-tag.yaml index ba5c780..ccff1ff 100644 --- a/E2Manager/container-tag.yaml +++ b/E2Manager/container-tag.yaml @@ -1,4 +1,4 @@ # The Jenkins job requires a tag to build the Docker image. # Global-JJB script assumes this file is in the repo root. --- -tag: 4.4.11 +tag: 4.4.12 diff --git a/E2Manager/models/e2_setup_response_message.go b/E2Manager/models/e2_setup_response_message.go index fc20788..798f784 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" + + setupRequestIes := request.E2APPDU.InitiatingMessage.Value.E2setupRequest.ProtocolIEs.E2setupRequestIEs + + outcome.Value.E2setupResponse.ProtocolIEs.E2setupResponseIEs = make([]E2setupResponseIEs, len(setupRequestIes)) outcome.Value.E2setupResponse.ProtocolIEs.E2setupResponseIEs[0].ID = "4" outcome.Value.E2setupResponse.ProtocolIEs.E2setupResponseIEs[0].Value = GlobalRICID{GlobalRICID: struct { Text string `xml:",chardata"` @@ -78,15 +81,17 @@ func NewE2SetupSuccessResponseMessage(plmnId string, ricId string, request *E2Se RicID string `xml:"ric-ID"` }{PLMNIdentity: plmnId, RicID: ricId}} + if len(setupRequestIes) < 2 { + return E2SetupResponseMessage{E2APPDU: E2APPDU{Outcome: outcome}} + } + 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}} - } + 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}} return E2SetupResponseMessage{E2APPDU: E2APPDU{Outcome: outcome}} } @@ -222,13 +227,7 @@ type Cause struct { 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)