Squash-merging e2ap-v2.0 branch
[ric-plt/e2mgr.git] / E2Manager / models / ric_service_update_message.go
index 4fcbe0d..29055d5 100644 (file)
@@ -20,103 +20,105 @@ package models
 
 import (
        "encoding/xml"
+
        "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities"
 )
 
 type RANfunctionsItemProtocolIESingleContainer 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"`
-                               RANfunctionItem struct {
-                                               Text                string `xml:",chardata"`
-                                               RanFunctionID       uint32 `xml:"ranFunctionID"`
-                                               RanFunctionDefinition string `xml:"ranFunctionDefinition"`
-                                               RanFunctionRevision uint32 `xml:"ranFunctionRevision"`
-                               } `xml:"RANfunction-Item"`
-               } `xml:"value"`
+       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"`
+               RANfunctionItem struct {
+                       Text                  string `xml:",chardata"`
+                       RanFunctionID         uint32 `xml:"ranFunctionID"`
+                       RanFunctionDefinition string `xml:"ranFunctionDefinition"`
+                       RanFunctionRevision   uint32 `xml:"ranFunctionRevision"`
+                       RanFunctionOID        string `xml:"ranFunctionOID"`
+               } `xml:"RANfunction-Item"`
+       } `xml:"value"`
 }
 
 type RANfunctionsItemIDProtocolIESingleContainer 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"`
-                               RANfunctionIDItem struct {
-                                               Text                string `xml:",chardata"`
-                                               RanFunctionID       uint32 `xml:"ranFunctionID"`
-                                               RanFunctionRevision uint32 `xml:"ranFunctionRevision"`
-                               } `xml:"RANfunctionID-Item"`
-               } `xml:"value"`
+       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"`
+               RANfunctionIDItem struct {
+                       Text                string `xml:",chardata"`
+                       RanFunctionID       uint32 `xml:"ranFunctionID"`
+                       RanFunctionRevision uint32 `xml:"ranFunctionRevision"`
+               } `xml:"RANfunctionID-Item"`
+       } `xml:"value"`
 }
 
-
 type RICServiceUpdateIEs struct {
        Text        string `xml:",chardata"`
-        ID          int `xml:"id"`
-        Criticality struct {
-                Text   string `xml:",chardata"`
-                Reject string `xml:"reject"`
-        } `xml:"criticality"`
-        Value struct {
+       ID          int    `xml:"id"`
+       Criticality struct {
                Text   string `xml:",chardata"`
+               Reject string `xml:"reject"`
+       } `xml:"criticality"`
+       Value struct {
+               Text             string `xml:",chardata"`
+               TransactionID    string `xml:"TransactionID"`
                RANfunctionsList struct {
-                       Text   string `xml:",chardata"`
+                       Text                                      string                                      `xml:",chardata"`
                        RANfunctionsItemProtocolIESingleContainer []RANfunctionsItemProtocolIESingleContainer `xml:"ProtocolIE-SingleContainer"`
                } `xml:"RANfunctions-List"`
                RANfunctionsIDList struct {
-                       Text   string `xml:",chardata"`
+                       Text                                        string                                        `xml:",chardata"`
                        RANfunctionsItemIDProtocolIESingleContainer []RANfunctionsItemIDProtocolIESingleContainer `xml:"ProtocolIE-SingleContainer"`
                } `xml:"RANfunctionsID-List"`
-       }`xml:"value"`
+       } `xml:"value"`
 }
 
 type RICServiceUpdateInitiatingMessage struct {
-        Text          string `xml:",chardata"`
-        ProcedureCode string `xml:"procedureCode"`
-        Criticality   struct {
-                Text   string `xml:",chardata"`
-                Reject string `xml:"reject"`
-        } `xml:"criticality"`
+       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"`
+               Text             string `xml:",chardata"`
                RICServiceUpdate struct {
                        Text        string `xml:",chardata"`
-                        ProtocolIEs struct {
-                                Text               string `xml:",chardata"`
-                                RICServiceUpdateIEs []RICServiceUpdateIEs `xml:"RICserviceUpdate-IEs"`
-                        } `xml:"protocolIEs"`
+                       ProtocolIEs struct {
+                               Text                string                `xml:",chardata"`
+                               RICServiceUpdateIEs []RICServiceUpdateIEs `xml:"RICserviceUpdate-IEs"`
+                       } `xml:"protocolIEs"`
                } `xml:"RICserviceUpdate"`
        } `xml:"value"`
 }
 
 type RICServiceUpdateE2APPDU struct {
-        XMLName xml.Name `xml:"E2AP-PDU"`
-        Text    string `xml:",chardata"`
-        InitiatingMessage  RICServiceUpdateInitiatingMessage `xml:"initiatingMessage"`
+       XMLName           xml.Name                          `xml:"E2AP-PDU"`
+       Text              string                            `xml:",chardata"`
+       InitiatingMessage RICServiceUpdateInitiatingMessage `xml:"initiatingMessage"`
 }
 
-type RICServiceUpdateMessage struct{
-       XMLName xml.Name `xml:"RICserviceUpdateMessage"`
-       Text    string   `xml:",chardata"`
-       E2APPDU RICServiceUpdateE2APPDU  `xml:"E2AP-PDU"`
+type RICServiceUpdateMessage struct {
+       XMLName xml.Name                `xml:"RICserviceUpdateMessage"`
+       Text    string                  `xml:",chardata"`
+       E2APPDU RICServiceUpdateE2APPDU `xml:"E2AP-PDU"`
 }
 
 func (m *RICServiceUpdateE2APPDU) ExtractRanFunctionsList() []*entities.RanFunction {
        serviceUpdateRequestIes := m.InitiatingMessage.Value.RICServiceUpdate.ProtocolIEs.RICServiceUpdateIEs
-       if len(serviceUpdateRequestIes) < 2 {
+       if len(serviceUpdateRequestIes) < 3 {
                return nil
        }
 
-       ranFunctionsListContainer := serviceUpdateRequestIes[1].Value.RANfunctionsList.RANfunctionsItemProtocolIESingleContainer
+       ranFunctionsListContainer := serviceUpdateRequestIes[2].Value.RANfunctionsList.RANfunctionsItemProtocolIESingleContainer
        funcs := make([]*entities.RanFunction, len(ranFunctionsListContainer))
        for i := 0; i < len(funcs); i++ {
                ranFunctionItem := ranFunctionsListContainer[i].Value.RANfunctionItem
@@ -125,6 +127,7 @@ func (m *RICServiceUpdateE2APPDU) ExtractRanFunctionsList() []*entities.RanFunct
                        RanFunctionId:         ranFunctionItem.RanFunctionID,
                        RanFunctionDefinition: ranFunctionItem.RanFunctionDefinition,
                        RanFunctionRevision:   ranFunctionItem.RanFunctionRevision,
+                       RanFunctionOid:        ranFunctionItem.RanFunctionOID,
                }
        }
        return funcs