- 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}}