X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=E2Manager%2Fmodels%2Fe2_reset_response.go;h=2722e5641f43b6bfc812ab961cebe255e7fbd2c6;hb=4f3eb344101cd80aade8d71120f62d7d8bede66b;hp=846bf707b528268f948e48d6ea272e8147ad4414;hpb=aa3e21c2fb093d886be4592d6061829448a0a9e1;p=ric-plt%2Fe2mgr.git diff --git a/E2Manager/models/e2_reset_response.go b/E2Manager/models/e2_reset_response.go index 846bf70..2722e56 100644 --- a/E2Manager/models/e2_reset_response.go +++ b/E2Manager/models/e2_reset_response.go @@ -23,39 +23,69 @@ import ( ) type E2ResetResponseMessage struct { - XMLName xml.Name `xml:"E2ResetRequestMessage"` + XMLName xml.Name `xml:"E2ResetSuccessResponseMessage"` Text string `xml:",chardata"` - E2APPDU struct { - XMLName xml.Name `xml:"E2AP-PDU"` - Text string `xml:",chardata"` - SuccessfulOutcome struct { - Text string `xml:",chardata"` - ProcedureCode string `xml:"procedureCode"` - Criticality struct { - Text string `xml:",chardata"` - Ignore string `xml:"ignore"` - } `xml:"criticality"` - Value struct { - Text string `xml:",chardata"` - ResetResponse struct { - Text string `xml:",chardata"` - ProtocolIEs struct { - Text string `xml:",chardata"` - ResetResponseIEs []struct { - Text string `xml:",chardata"` - ID string `xml:"id"` - Criticality struct { - Text string `xml:",chardata"` - Ignore string `xml:"ignore"` - } `xml:"criticality"` - Value struct { - Text string `xml:",chardata"` - TransactionID string `xml:"TransactionID"` - } `xml:"value"` - } `xml:"ResetResponseIEs"` - } `xml:"protocolIEs"` - } `xml:"ResetResponse"` - } `xml:"value"` - } `xml:"successfulOutcome"` - } `xml:"E2AP-PDU"` + E2ApPdu E2ApPdu `xml:"E2AP-PDU"` +} + +type E2ApPdu struct { + XMLName xml.Name `xml:"E2AP-PDU"` + Text string `xml:",chardata"` + SuccessfulOutcome successfulOutcome `xml:"successfulOutcome"` +} + +type successfulOutcome struct { + XMLName xml.Name `xml:"successfulOutcome"` + Text string `xml:",chardata"` + ProcedureCode string `xml:"procedureCode"` + Criticality struct { + Text string `xml:",chardata"` + Reject string `xml:"reject"` + } `xml:"criticality"` + Value SuccessfulOutcomeValue `xml:"value"` +} + +type Criticality struct { + Ignore string `xml:"ignore"` +} + +type SuccessfulOutcomeValue struct { + Text string `xml:",chardata"` + ResetResponse ResetResponse `xml:"ResetResponse"` +} + +type ResetResponse struct { + Text string `xml:",chardata"` + ProtocolIEs ProtocolIEs `xml:"protocolIEs"` +} + +type ProtocolIEs struct { + Text string `xml:",chardata"` + ResetResponseIEs []ResetResponseIEs `xml:"ResetResponseIEs"` +} + +type ResetResponseIEs struct { + Text string `xml:",chardata"` + ID string `xml:"id"` + Criticality Criticality `xml:"criticality"` + Value ResetResponseIEsValue `xml:"value"` +} + +type ResetResponseIEsValue struct { + TransactionID string `xml:"TransactionID"` +} + +func NewE2ResetResponseMessage(request *E2ResetRequestMessage) E2ResetResponseMessage { + outcome := successfulOutcome{} + outcome.ProcedureCode = string(request.E2ApPDU.InitiatingMessage.ProcedureCode) + e2ResetRequestIes := request.E2ApPDU.InitiatingMessage.Value.E2ResetRequest.ProtocolIes.ResetRequestIEs + numOfIes := len(e2ResetRequestIes) + + outcome.Value.ResetResponse.ProtocolIEs.ResetResponseIEs = make([]ResetResponseIEs, numOfIes) + for ieCount := 0; ieCount < numOfIes; ieCount++ { + outcome.Value.ResetResponse.ProtocolIEs.ResetResponseIEs[ieCount].ID = string(request.E2ApPDU.InitiatingMessage.Value.E2ResetRequest.ProtocolIes.ResetRequestIEs[ieCount].ID) + outcome.Value.ResetResponse.ProtocolIEs.ResetResponseIEs[ieCount].Criticality.Ignore = request.E2ApPDU.InitiatingMessage.Value.E2ResetRequest.ProtocolIes.ResetRequestIEs[ieCount].Criticality.Ignore + outcome.Value.ResetResponse.ProtocolIEs.ResetResponseIEs[ieCount].Value.TransactionID = string(*(request.E2ApPDU.InitiatingMessage.Value.E2ResetRequest.ProtocolIes.ResetRequestIEs[ieCount].Value.TransactionID)) + } + return E2ResetResponseMessage{E2ApPdu: E2ApPdu{SuccessfulOutcome: outcome}} }