\r
func (e *E2ResetRequestNotificationHandler) parseE2ResetMessage(payload []byte) (*models.E2ResetRequestMessage, error) {\r
e2resetMessage := models.E2ResetRequestMessage{}\r
- err := xml.Unmarshal(utils.NormalizeXml(payload), &(e2resetMessage.E2APPDU))\r
+ err := xml.Unmarshal(utils.NormalizeXml(payload), &(e2resetMessage.E2ApPDU))\r
\r
if err != nil {\r
e.logger.Errorf("#E2ResetRequestNotificationHandler.Handle - error in parsing request message: %+v", err)\r
return nil, err\r
}\r
- e.logger.Debugf("#E2ResetRequestNotificationHandler.Handle - Unmarshalling is successful %v", e2resetMessage.E2APPDU.InitiatingMessage.ProcedureCode)\r
+ e.logger.Debugf("#E2ResetRequestNotificationHandler.Handle - Unmarshalling is successful %v", e2resetMessage.E2ApPDU.InitiatingMessage.ProcedureCode)\r
return &e2resetMessage, nil\r
}\r
\r
package models
-import (
- "encoding/xml"
-)
-
type E2ResetRequestMessage struct {
- XMLName xml.Name `xml:"E2ResetRequestMessage"`
- Text string `xml:",chardata"`
- E2APPDU struct {
- XMLName xml.Name `xml:"E2AP-PDU"`
- Text string `xml:",chardata"`
- InitiatingMessage struct {
- Text string `xml:",chardata"`
- ProcedureCode string `xml:"procedureCode"`
- Criticality struct {
- Text string `xml:",chardata"`
- Reject string `xml:"reject"`
- } `xml:"criticality"`
- Value struct {
- Text string `xml:",chardata"`
- ResetRequest struct {
- Text string `xml:",chardata"`
- ProtocolIEs struct {
- Text string `xml:",chardata"`
- ResetRequestIEs []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"`
- Cause CauseResetRequest `xml:"Cause"`
- } `xml:"value"`
- } `xml:"ResetRequestIEs"`
- } `xml:"protocolIEs"`
- } `xml:"ResetRequest"`
- } `xml:"value"`
- } `xml:"initiatingMessage"`
- } `xml:"E2AP-PDU"`
+ E2ApPDU E2ApPDU `xml:"E2AP-PDU"`
+}
+
+type E2ApPDU struct {
+ InitiatingMessage InitiatingMessageY `xml:"initiatingMessage"`
+}
+
+type InitiatingMessageY struct {
+ ProcedureCode int64 `xml:"procedureCode"`
+ Criticality InitiatingMessageCriticality `xml:"criticality"`
+ Value InitiatingMessageValue `xml:"value"`
+}
+
+type InitiatingMessageCriticality struct {
+ Reject string `xml:"reject"`
+}
+
+type InitiatingMessageValue struct {
+ E2ResetRequest E2ResetRequest `xml:"ResetRequest"`
+}
+
+type E2ResetRequest struct {
+ ProtocolIes ProtocolIes `xml:"protocolIEs"`
+}
+
+type ProtocolIes struct {
+ ResetRequestIEs []ResetRequestIEs `xml:"ResetRequestIEs"`
+}
+
+type ResetRequestIEs struct {
+ ID int64 `xml:"id"`
+ Criticality ResetRequestCriticality `xml:"criticality"`
+ Value ResetRequestValue `xml:"value"`
+}
+
+type ResetRequestCriticality struct {
+ Ignore string `xml:"ignore"`
+}
+
+type ResetRequestValue struct {
+ TransactionID *int64 `xml:"TransactionID"`
+ Cause *CauseResetRequest `xml:"Cause"`
}
type CauseResetRequest struct {
func NewE2ResetResponseMessage(request *E2ResetRequestMessage) E2ResetResponseMessage {
outcome := successfulOutcome{}
- outcome.ProcedureCode = request.E2APPDU.InitiatingMessage.ProcedureCode
- e2ResetRequestIes := request.E2APPDU.InitiatingMessage.Value.ResetRequest.ProtocolIEs.ResetRequestIEs
+ 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 = request.E2APPDU.InitiatingMessage.Value.ResetRequest.ProtocolIEs.ResetRequestIEs[ieCount].ID
- outcome.Value.ResetResponse.ProtocolIEs.ResetResponseIEs[ieCount].Criticality.Ignore = request.E2APPDU.InitiatingMessage.Value.ResetRequest.ProtocolIEs.ResetRequestIEs[ieCount].Criticality.Ignore
- outcome.Value.ResetResponse.ProtocolIEs.ResetResponseIEs[ieCount].Value.TransactionID = request.E2APPDU.InitiatingMessage.Value.ResetRequest.ProtocolIEs.ResetRequestIEs[ieCount].Value.TransactionID
+ 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}}
}