E2 reset request message model 43/11143/4
authornaman.gupta <naman.gupta@samsung.com>
Mon, 22 May 2023 11:41:10 +0000 (17:11 +0530)
committernaman.gupta <naman.gupta@samsung.com>
Wed, 24 May 2023 11:33:11 +0000 (17:03 +0530)
E2 reset request message model.

Signed-off-by: naman.gupta <naman.gupta@samsung.com>
Change-Id: I073aa960cfb7d3b6e89e15689d382c0c53a025ea

E2Manager/handlers/rmrmsghandlers/e2_reset_request_handler.go
E2Manager/models/e2_reset_request.go
E2Manager/models/e2_reset_response.go

index c3f7975..eb20f13 100644 (file)
@@ -153,13 +153,13 @@ func (e *E2ResetRequestNotificationHandler) waitfortimertimeout(request *models.
 \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
index 582453f..a0a35f8 100644 (file)
 
 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 {
index 42d83ce..2722e56 100644 (file)
@@ -77,15 +77,15 @@ type ResetResponseIEsValue 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}}
 }