[RIC-475] [RIC-507] Inject RanStatusChangeManager | Enhance E2 Setup flow | Remove...
[ric-plt/e2mgr.git] / E2Manager / models / e2_setup_request_message.go
index e61d498..f7088b8 100644 (file)
@@ -22,7 +22,6 @@ package models
 import (
        "encoding/xml"
        "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities"
-       "github.com/golang/protobuf/ptypes/wrappers"
        "strings"
 )
 
@@ -132,119 +131,10 @@ type E2SetupRequestMessage struct {
 }
 
 type RanFunctionItem struct {
-       Text                  string                `xml:",chardata"`
-       RanFunctionID         uint32                `xml:"ranFunctionID"`
-       RanFunctionDefinition RanFunctionDefinition `xml:"ranFunctionDefinition"`
-       RanFunctionRevision   uint32                `xml:"ranFunctionRevision"`
-}
-
-type RanFunctionDefinition struct {
-       Text                            string                          `xml:",chardata"`
-       E2smGnbNrtRanFunctionDefinition E2smGnbNrtRanFunctionDefinition `xml:"E2SM-gNB-NRT-RANfunction-Definition"`
-}
-
-type RanFunctionName struct {
-       Text                   string  `xml:",chardata"`
-       RanFunctionShortName   string  `xml:"ranFunction-ShortName"`
-       RanFunctionE2smOid     string  `xml:"ranFunction-E2SM-OID"`
-       RanFunctionDescription string  `xml:"ranFunction-Description"`
-       RanFunctionInstance    *uint32 `xml:"ranFunction-Instance"`
-}
-
-type RicEventTriggerStyleList struct {
-       Text                      string `xml:",chardata"`
-       RicEventTriggerStyleType  uint32 `xml:"ric-EventTriggerStyle-Type"`
-       RicEventTriggerStyleName  string `xml:"ric-EventTriggerStyle-Name"`
-       RicEventTriggerFormatType uint32 `xml:"ric-EventTriggerFormat-Type"`
-}
-
-type RanParameterDefItem struct {
-       Text             string           `xml:",chardata"`
-       RanParameterID   uint32           `xml:"ranParameter-ID"`
-       RanParameterName string           `xml:"ranParameter-Name"`
-       RanParameterType RanParameterType `xml:"ranParameter-Type"`
-}
-
-type RanParameterType struct {
-       Text            string    `xml:",chardata"`
-       Boolean         *struct{} `xml:"boolean,omitempty"`
-       Integer         *struct{} `xml:"integer,omitempty"`
-       Enumerated      *struct{} `xml:"enumerated,omitempty"`
-       BitString       *struct{} `xml:"bit-string,omitempty"`
-       OctetString     *struct{} `xml:"octet-string,omitempty"`
-       PrintableString *struct{} `xml:"printable-string,omitempty"`
-}
-
-type RicReportStyleList struct {
-       Text                         string `xml:",chardata"`
-       RicReportStyleType           uint32 `xml:"ric-ReportStyle-Type"`
-       RicReportStyleName           string `xml:"ric-ReportStyle-Name"`
-       RicReportActionFormatType    uint32 `xml:"ric-ReportActionFormat-Type"`
-       RicReportRanParameterDefList struct {
-               Text                string                `xml:",chardata"`
-               RanParameterDefItem []RanParameterDefItem `xml:"RANparameterDef-Item"`
-       } `xml:"ric-ReportRanParameterDef-List"`
-       RicIndicationHeaderFormatType  uint32 `xml:"ric-IndicationHeaderFormat-Type"`
-       RicIndicationMessageFormatType uint32 `xml:"ric-IndicationMessageFormat-Type"`
-}
-
-type RicInsertStyleList struct {
-       Text                         string `xml:",chardata"`
-       RicInsertStyleType           uint32 `xml:"ric-InsertStyle-Type"`
-       RicInsertStyleName           string `xml:"ric-InsertStyle-Name"`
-       RicInsertActionFormatType    uint32 `xml:"ric-InsertActionFormat-Type"`
-       RicInsertRanParameterDefList struct {
-               Text                string                `xml:",chardata"`
-               RanParameterDefItem []RanParameterDefItem `xml:"RANparameterDef-Item"`
-       } `xml:"ric-InsertRanParameterDef-List"`
-       RicIndicationHeaderFormatType  uint32 `xml:"ric-IndicationHeaderFormat-Type"`
-       RicIndicationMessageFormatType uint32 `xml:"ric-IndicationMessageFormat-Type"`
-       RicCallProcessIdFormatType     uint32 `xml:"ric-CallProcessIDFormat-Type"`
-}
-
-type RicControlStyleList struct {
-       Text                        string `xml:",chardata"`
-       RicControlStyleType         uint32 `xml:"ric-ControlStyle-Type"`
-       RicControlStyleName         string `xml:"ric-ControlStyle-Name"`
-       RicControlHeaderFormatType  uint32 `xml:"ric-ControlHeaderFormat-Type"`
-       RicControlMessageFormatType uint32 `xml:"ric-ControlMessageFormat-Type"`
-       RicCallProcessIdFormatType  uint32 `xml:"ric-CallProcessIDFormat-Type"`
-}
-
-type RicPolicyStyleList struct {
-       Text                         string `xml:",chardata"`
-       RicPolicyStyleType           uint32 `xml:"ric-PolicyStyle-Type"`
-       RicPolicyStyleName           string `xml:"ric-PolicyStyle-Name"`
-       RicPolicyActionFormatType    uint32 `xml:"ric-PolicyActionFormat-Type"`
-       RicPolicyRanParameterDefList struct {
-               Text                string                `xml:",chardata"`
-               RanParameterDefItem []RanParameterDefItem `xml:"RANparameterDef-Item"`
-       } `xml:"ric-PolicyRanParameterDef-List"`
-}
-
-type E2smGnbNrtRanFunctionDefinition struct {
-       Text                     string          `xml:",chardata"`
-       RanFunctionName          RanFunctionName `xml:"ranFunction-Name"`
-       RicEventTriggerStyleList struct {
-               Text                     string                     `xml:",chardata"`
-               RicEventTriggerStyleList []RicEventTriggerStyleList `xml:"RIC-EventTriggerStyle-List"`
-       } `xml:"ric-EventTriggerStyle-List"`
-       RicReportStyleList struct {
-               Text               string               `xml:",chardata"`
-               RicReportStyleList []RicReportStyleList `xml:"RIC-ReportStyle-List"`
-       } `xml:"ric-ReportStyle-List"`
-       RicInsertStyleList struct {
-               Text               string               `xml:",chardata"`
-               RicInsertStyleList []RicInsertStyleList `xml:"RIC-InsertStyle-List"`
-       } `xml:"ric-InsertStyle-List"`
-       RicControlStyleList struct {
-               Text                string                `xml:",chardata"`
-               RicControlStyleList []RicControlStyleList `xml:"RIC-ControlStyle-List"`
-       } `xml:"ric-ControlStyle-List"`
-       RicPolicyStyleList struct {
-               Text               string               `xml:",chardata"`
-               RicPolicyStyleList []RicPolicyStyleList `xml:"RIC-PolicyStyle-List"`
-       } `xml:"ric-PolicyStyle-List"`
+       Text                  string `xml:",chardata"`
+       RanFunctionID         uint32 `xml:"ranFunctionID"`
+       RanFunctionDefinition string `xml:"ranFunctionDefinition"`
+       RanFunctionRevision   uint32 `xml:"ranFunctionRevision"`
 }
 
 type RANfunctionsList struct {
@@ -266,7 +156,7 @@ type RANfunctionsList struct {
 func (m *E2SetupRequestMessage) ExtractRanFunctionsList() []*entities.RanFunction {
        // TODO: verify e2SetupRequestIEs structure with Adi
        e2SetupRequestIes := m.E2APPDU.InitiatingMessage.Value.E2setupRequest.ProtocolIEs.E2setupRequestIEs
-       if len(e2SetupRequestIes) < 2  {
+       if len(e2SetupRequestIes) < 2 {
                return nil
        }
 
@@ -276,202 +166,14 @@ func (m *E2SetupRequestMessage) ExtractRanFunctionsList() []*entities.RanFunctio
                ranFunctionItem := ranFunctionsListContainer[i].Value.RANfunctionItem
 
                funcs[i] = &entities.RanFunction{
-                       RanFunctionId:         &wrappers.UInt32Value{Value: ranFunctionItem.RanFunctionID},
-                       RanFunctionDefinition: m.buildRanFunctionDefinitionProto(&ranFunctionItem.RanFunctionDefinition),
-                       RanFunctionRevision:   &wrappers.UInt32Value{Value: ranFunctionItem.RanFunctionRevision},
+                       RanFunctionId:         ranFunctionItem.RanFunctionID,
+                       RanFunctionDefinition: ranFunctionItem.RanFunctionDefinition,
+                       RanFunctionRevision:   ranFunctionItem.RanFunctionRevision,
                }
        }
        return funcs
 }
 
-func (m *E2SetupRequestMessage) buildRanFunctionDefinitionProto(def *RanFunctionDefinition) *entities.RanFunctionDefinition {
-       return &entities.RanFunctionDefinition{
-               E2SmGnbNrtRanFunctionDefinition: &entities.E2SmGnbNrtRanFunctionDefinition{
-                       RanFunctionName:       buildRanFunctionNameProto(def),
-                       RicEventTriggerStyles: buildRicEventTriggerStylesProto(def),
-                       RicReportStyles:       buildRicReportStylesProto(def),
-                       RicInsertStyles:       buildRicInsertStylesProto(def),
-                       RicControlStyles:      buildRicControlStylesProto(def),
-                       RicPolicyStyles:       buildRicPolicyStylesProto(def),
-               },
-       }
-}
-
-func buildRanFunctionNameProto(def *RanFunctionDefinition) *entities.RanFunctionName {
-       defRanFunctionName := def.E2smGnbNrtRanFunctionDefinition.RanFunctionName
-       ranFunctionName := &entities.RanFunctionName{
-               RanFunctionShortName:   &wrappers.StringValue{Value: defRanFunctionName.RanFunctionShortName},
-               RanFunctionE2SmOid:     &wrappers.StringValue{Value: defRanFunctionName.RanFunctionE2smOid},
-               RanFunctionDescription: &wrappers.StringValue{Value: defRanFunctionName.RanFunctionDescription},
-       }
-
-       if defRanFunctionName.RanFunctionInstance != nil {
-               ranFunctionName.OptionalRanFunctionInstance = &entities.RanFunctionName_RanFunctionInstance{
-                       RanFunctionInstance: *defRanFunctionName.RanFunctionInstance,
-               }
-       }
-
-       return ranFunctionName
-}
-
-func buildRicEventTriggerStylesProto(def *RanFunctionDefinition) []*entities.RicEventTriggerStyle {
-       defRicEventTriggerStyleList := def.E2smGnbNrtRanFunctionDefinition.RicEventTriggerStyleList.RicEventTriggerStyleList
-       ricEventTriggerStyles := make([]*entities.RicEventTriggerStyle, len(defRicEventTriggerStyleList))
-
-       for i, v := range defRicEventTriggerStyleList {
-               ricEventTriggerStyles[i] = &entities.RicEventTriggerStyle{
-                       RicEventTriggerStyleType:  &wrappers.UInt32Value{Value: v.RicEventTriggerStyleType},
-                       RicEventTriggerStyleName:  &wrappers.StringValue{Value: v.RicEventTriggerStyleName},
-                       RicEventTriggerFormatType: &wrappers.UInt32Value{Value: v.RicEventTriggerFormatType},
-               }
-       }
-
-       return ricEventTriggerStyles
-}
-
-func buildRicReportStylesProto(def *RanFunctionDefinition) []*entities.RicReportStyle {
-       defRicReportStyleList := def.E2smGnbNrtRanFunctionDefinition.RicReportStyleList.RicReportStyleList
-       ricReportStyles := make([]*entities.RicReportStyle, len(defRicReportStyleList))
-
-       for i, v := range defRicReportStyleList {
-               ricReportStyles[i] = &entities.RicReportStyle{
-                       RicReportStyleType:             &wrappers.UInt32Value{Value: v.RicReportStyleType},
-                       RicReportStyleName:             &wrappers.StringValue{Value: v.RicReportStyleName},
-                       RicReportActionFormatType:      &wrappers.UInt32Value{Value: v.RicReportActionFormatType},
-                       RicReportRanParameterDefs:      buildRicReportRanParameterDefsProto(v),
-                       RicIndicationHeaderFormatType:  &wrappers.UInt32Value{Value: v.RicIndicationHeaderFormatType},
-                       RicIndicationMessageFormatType: &wrappers.UInt32Value{Value: v.RicIndicationMessageFormatType},
-               }
-       }
-
-       return ricReportStyles
-}
-
-func buildRicReportRanParameterDefsProto(ricReportStyleList RicReportStyleList) []*entities.RanParameterDef {
-       ricReportRanParameterDefList := ricReportStyleList.RicReportRanParameterDefList.RanParameterDefItem
-       ranParameterDefs := make([]*entities.RanParameterDef, len(ricReportRanParameterDefList))
-
-       for i, v := range ricReportRanParameterDefList {
-               ranParameterDefs[i] = &entities.RanParameterDef{
-                       RanParameterId:   &wrappers.UInt32Value{Value: v.RanParameterID},
-                       RanParameterName: &wrappers.StringValue{Value: v.RanParameterName},
-                       RanParameterType: getRanParameterTypeEnumValue(v.RanParameterType),
-               }
-       }
-
-       return ranParameterDefs
-}
-
-func getRanParameterTypeEnumValue(ranParameterType RanParameterType) entities.RanParameterType {
-       if ranParameterType.Boolean != nil {
-               return entities.RanParameterType_BOOLEAN
-       }
-
-       if ranParameterType.BitString != nil {
-               return entities.RanParameterType_BIT_STRING
-       }
-
-       if ranParameterType.Enumerated != nil {
-               return entities.RanParameterType_ENUMERATED
-       }
-
-       if ranParameterType.Integer != nil {
-               return entities.RanParameterType_INTEGER
-       }
-
-       if ranParameterType.OctetString != nil {
-               return entities.RanParameterType_OCTET_STRING
-       }
-
-       if ranParameterType.PrintableString != nil {
-               return entities.RanParameterType_PRINTABLE_STRING
-       }
-
-       return entities.RanParameterType_UNKNOWN_RAN_PARAMETER_TYPE
-}
-
-func buildRicInsertStylesProto(def *RanFunctionDefinition) []*entities.RicInsertStyle {
-       defRicInsertStyleList := def.E2smGnbNrtRanFunctionDefinition.RicInsertStyleList.RicInsertStyleList
-       ricInsertStyles := make([]*entities.RicInsertStyle, len(defRicInsertStyleList))
-
-       for i, v := range defRicInsertStyleList {
-               ricInsertStyles[i] = &entities.RicInsertStyle{
-                       RicInsertStyleType:             &wrappers.UInt32Value{Value: v.RicInsertStyleType},
-                       RicInsertStyleName:             &wrappers.StringValue{Value: v.RicInsertStyleName},
-                       RicInsertActionFormatType:      &wrappers.UInt32Value{Value: v.RicInsertActionFormatType},
-                       RicInsertRanParameterDefs:      buildRicInsertRanParameterDefsProto(v),
-                       RicIndicationHeaderFormatType:  &wrappers.UInt32Value{Value: v.RicIndicationHeaderFormatType},
-                       RicIndicationMessageFormatType: &wrappers.UInt32Value{Value: v.RicIndicationMessageFormatType},
-                       RicCallProcessIdFormatType:     &wrappers.UInt32Value{Value: v.RicCallProcessIdFormatType},
-               }
-       }
-
-       return ricInsertStyles
-}
-
-func buildRicInsertRanParameterDefsProto(ricInsertStyleList RicInsertStyleList) []*entities.RanParameterDef {
-       ricInsertRanParameterDefList := ricInsertStyleList.RicInsertRanParameterDefList.RanParameterDefItem
-       ranParameterDefs := make([]*entities.RanParameterDef, len(ricInsertRanParameterDefList))
-
-       for i, v := range ricInsertRanParameterDefList {
-               ranParameterDefs[i] = &entities.RanParameterDef{
-                       RanParameterId:   &wrappers.UInt32Value{Value: v.RanParameterID},
-                       RanParameterName: &wrappers.StringValue{Value: v.RanParameterName},
-                       RanParameterType: getRanParameterTypeEnumValue(v.RanParameterType),
-               }
-       }
-
-       return ranParameterDefs
-}
-
-func buildRicControlStylesProto(def *RanFunctionDefinition) []*entities.RicControlStyle {
-       defRicControlStyleList := def.E2smGnbNrtRanFunctionDefinition.RicControlStyleList.RicControlStyleList
-       ricControlStyles := make([]*entities.RicControlStyle, len(defRicControlStyleList))
-
-       for i, v := range defRicControlStyleList {
-               ricControlStyles[i] = &entities.RicControlStyle{
-                       RicControlStyleType:         &wrappers.UInt32Value{Value: v.RicControlStyleType},
-                       RicControlStyleName:         &wrappers.StringValue{Value: v.RicControlStyleName},
-                       RicControlHeaderFormatType:  &wrappers.UInt32Value{Value: v.RicControlHeaderFormatType},
-                       RicControlMessageFormatType: &wrappers.UInt32Value{Value: v.RicControlMessageFormatType},
-                       RicCallProcessIdFormatType:  &wrappers.UInt32Value{Value: v.RicCallProcessIdFormatType},
-               }
-       }
-
-       return ricControlStyles
-}
-
-func buildRicPolicyRanParameterDefsProto(ricPolicyStyleList RicPolicyStyleList) []*entities.RanParameterDef {
-       ricPolicyRanParameterDefList := ricPolicyStyleList.RicPolicyRanParameterDefList.RanParameterDefItem
-       ranParameterDefs := make([]*entities.RanParameterDef, len(ricPolicyRanParameterDefList))
-
-       for i, v := range ricPolicyRanParameterDefList {
-               ranParameterDefs[i] = &entities.RanParameterDef{
-                       RanParameterId:   &wrappers.UInt32Value{Value: v.RanParameterID},
-                       RanParameterName: &wrappers.StringValue{Value: v.RanParameterName},
-                       RanParameterType: getRanParameterTypeEnumValue(v.RanParameterType),
-               }
-       }
-
-       return ranParameterDefs
-}
-
-func buildRicPolicyStylesProto(def *RanFunctionDefinition) []*entities.RicPolicyStyle {
-       defRicPolicyStyleList := def.E2smGnbNrtRanFunctionDefinition.RicPolicyStyleList.RicPolicyStyleList
-       ricPolicyStyles := make([]*entities.RicPolicyStyle, len(defRicPolicyStyleList))
-
-       for i, v := range defRicPolicyStyleList {
-               ricPolicyStyles[i] = &entities.RicPolicyStyle{
-                       RicPolicyStyleType:        &wrappers.UInt32Value{Value: v.RicPolicyStyleType},
-                       RicPolicyStyleName:        &wrappers.StringValue{Value: v.RicPolicyStyleName},
-                       RicPolicyActionFormatType: &wrappers.UInt32Value{Value: v.RicPolicyActionFormatType},
-                       RicPolicyRanParameterDefs: buildRicPolicyRanParameterDefsProto(v),
-               }
-       }
-
-       return ricPolicyStyles
-}
-
 func (m *E2SetupRequestMessage) getGlobalE2NodeId() GlobalE2NodeId {
        return m.E2APPDU.InitiatingMessage.Value.E2setupRequest.ProtocolIEs.E2setupRequestIEs[0].Value.GlobalE2nodeID
 }