/******************************************************************************/
// @copyright   Copyright Notification
//   No part may be reproduced except as authorized by written permission.
//   The copyright and the foregoing restriction extend to reproduction in all media.
//   Trademark 2010, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC).
//   All rights reserved.
// @version: IWD_10wk37
// $Date: 2010-09-16 23:11:35 +0200 (Thu, 16 Sep 2010) $
// $Rev: 3943 $
/******************************************************************************/

module EUTRA_Measurement_Templates
{

/////////////////
// Import Part //
/////////////////

  import from EUTRA_RRC_ASN1_Definitions language "ASN.1:1997" all;
  import from EUTRA_RRC_Templates all;
  import from EUTRA_CommonDefs all;
  import from CommonDefs all;

/////////////////////
// Type Definition //
/////////////////////

  type integer UTRA_RSCP_Type (-5..91);
  type integer UTRA_EcN0_Type (0..49);
  type integer RSSI_Range_Type (0..63);
  type integer EUTRA_RS_EPRE_Type (-141..-44);                  /* Changed from formerly (-140..-43), see also CR R5-090153
                                                                   @status    APPROVED */
  type integer UTRA_RSCP_dBm_Type (-115..-24); //TBD!!!! Should be (-116..-25)
  type integer UTRA_Ec_Io_dB_Type (-24..0); //in dB
  type integer GERAN_RSSI_dBm_Type (-110..-47); //Maybe it should be (-111..-48)
  type integer A3_Offset_Type (-30..30);                        /* @status    APPROVED */
  type integer GapOffset_Gp0_Type (0..39);                      /* @status    APPROVED */
  type integer GapOffset_Gp1_Type (0..79);

////////////////////
// Constants Part //
////////////////////

  const integer tsc_V_Thres := 0; /* FFS dummy value */

  const integer tsc_IdMeasObject_f1 := 1;                       /* @status    APPROVED */
  const integer tsc_IdMeasObject_f1_CGI := 17;
  const integer tsc_IdMeasObject_f2 := 2;                       /* @status    APPROVED */
  const integer tsc_IdMeasObject_f3 := 3;
  const integer tsc_IdMeasObject_f8 := 8;
  const integer tsc_IdMeasObject_f8_CGI := 24;
  const integer tsc_IdMeasObject_f11 := 11;
  const integer tsc_IdMeasObject_f11_CGI := 27;
  const integer tsc_IdMeasObject_f12 := 12;
  const integer tsc_IdMeasObject_f13 := 13;

  const integer tsc_IdReportConfig_A1 := 1;                     /* @status    APPROVED */
  const integer tsc_IdReportConfig_A2 := 2;                     /* @status    APPROVED */
  const integer tsc_IdReportConfig_A3 := 3;                     /* @status    APPROVED */
  const integer tsc_IdReportConfigEUTRA_PERIODICAL := 4;
  const integer tsc_IdReportConfig_B2_GERAN := 11;
  const integer tsc_IdReportConfig_B2_UTRA := 12;
  const integer tsc_IdReportConfigInterRAT_PERIODICAL := 10;
  const integer tsc_ReportConfigId_CGI := 5;

  ////////////////////
  // Templates Part //
  ////////////////////
  
  
  //****************************************************************
  //Templates with ASN.1 syntax for common uses
  //****************************************************************
  
  
  //================================================================
  //DL_DCCH_Message

  //cs_508_RRCConnectionReconfiguration_ConditionMEAS
  template (value) DL_DCCH_Message cs_508_RRCConnectionReconfiguration_ConditionMEAS(RRC_TransactionIdentifier p_RRC_TI,
                                                                                     template (value) MeasConfig p_MeasConfig ) :=
    /* @status    APPROVED */
    cs_RRCConnectionReconfiguration_Common( p_RRC_TI, p_MeasConfig, omit, omit, omit );
  
  //------------------------------------------------
  //rrcConnectionReconfiguration..rrcConnectionReconfiguration_r8.measConfig
  
  

  //cs_MeasConfig
  template (value) MeasConfig cs_MeasConfig(template (omit) MeasObjectToRemoveList p_MeasObjectToRemoveList,
                                            template (omit) MeasObjectToAddModList p_MeasObjectToAddModList,
                                            template (omit) ReportConfigToRemoveList p_ReportConfigToRemoveList,
                                            template (omit) ReportConfigToAddModList p_ReportConfigToAddModList,
                                            template (omit) MeasIdToRemoveList p_MeasIdToRemoveList,
                                            template (omit) MeasIdToAddModList p_MeasIdToAddModList,
                                            template (omit) QuantityConfig p_QuantityConfig := cs_QuantityConfig_Def,
                                            template (omit) MeasGapConfig p_MeasGapConfig := omit,
                                            template (omit) RSRP_Range p_RSRP_Range := omit,
                                            template (omit) PreRegistrationInfoHRPD p_HRPD_PreRegistrationInfo := omit,
                                            template (omit) MeasConfig.speedStatePars p_SpeedStatePars := omit ) :=
  { /* @sic R5s100477 Additional Changes: merge of cs_MeasConfig and cs_MeasConfig_Common sic@ */
    /* @status    APPROVED */
    measObjectToRemoveList   := p_MeasObjectToRemoveList,
    measObjectToAddModList   := p_MeasObjectToAddModList,
    reportConfigToRemoveList := p_ReportConfigToRemoveList,
    reportConfigToAddModList := p_ReportConfigToAddModList,
    measIdToRemoveList       := p_MeasIdToRemoveList,
    measIdToAddModList       := p_MeasIdToAddModList,
    quantityConfig           := p_QuantityConfig,
    measGapConfig            := p_MeasGapConfig,
    s_Measure                := p_RSRP_Range,
    preRegistrationInfoHRPD  := p_HRPD_PreRegistrationInfo,
    speedStatePars           := p_SpeedStatePars
  };

  //------------------------------------------------
  //measConfig.measObjectToRemoveList
  
  //cs_MeasObjectToRemoveList_1Entry
  template (value) MeasObjectToRemoveList cs_MeasObjectToRemoveList_1Entry( MeasObjectId p_MeasObjectId ) :=
  { /* @status    APPROVED */
    p_MeasObjectId
  };
  
  //------------------------------------------------
  //measConfig.measObjectToAddModList
  
  //cs_MeasObjectToAddModList_1Entry
  template (value) MeasObjectToAddModList cs_MeasObjectToAddModList_1Entry(MeasObjectId p_MeasObjectId,
                                                                           template (value) MeasObjectToAddMod.measObject p_MeasObject ) :=
  { /* @status    APPROVED */
    {
      measObjectId := p_MeasObjectId,
      measObject   := p_MeasObject
    }
  };
  
  //cs_MeasObjectToAddModList_2Entries
  template (value) MeasObjectToAddModList cs_MeasObjectToAddModList_2Entries(MeasObjectId p_MeasObjectId_1,
                                                                             template (value) MeasObjectToAddMod.measObject p_MeasObject_1,
                                                                             MeasObjectId p_MeasObjectId_2,
                                                                             template (value) MeasObjectToAddMod.measObject p_MeasObject_2 ) :=
  { /* @status    APPROVED */
    {
      measObjectId := p_MeasObjectId_1,
      measObject   := p_MeasObject_1
    },
    {
      measObjectId := p_MeasObjectId_2,
      measObject   := p_MeasObject_2
    }
  };
  
  //cs_MeasObjectToAddModList_3Entries
  template (value) MeasObjectToAddModList cs_MeasObjectToAddModList_3Entries(MeasObjectId p_MeasObjectId_1,
                                                                             template (value) MeasObjectToAddMod.measObject p_MeasObject_1,
                                                                             MeasObjectId p_MeasObjectId_2,
                                                                             template (value) MeasObjectToAddMod.measObject p_MeasObject_2,
                                                                             MeasObjectId p_MeasObjectId_3,
                                                                             template (value) MeasObjectToAddMod.measObject p_MeasObject_3 ) :=
  {
    {
      measObjectId := p_MeasObjectId_1,
      measObject   := p_MeasObject_1
    },
    {
      measObjectId := p_MeasObjectId_2,
      measObject   := p_MeasObject_2
    },
    {
      measObjectId := p_MeasObjectId_3,
      measObject   := p_MeasObject_3
    }
  };
  
  //------------------------------------------------
  //measObjectToAddMod.measObject(CHOICE: measObjectEUTRA)
  
  //cs_MeasObject_measObjectEUTRA_Common
  template (value) MeasObjectToAddMod.measObject cs_MeasObject_measObjectEUTRA_Common(ARFCN_ValueEUTRA p_EUTRA_DL_CarrierFreq,
                                                                                      AllowedMeasBandwidth p_MeasurementBandwidth,
                                                                                      template (omit) CellIndexList p_BlackCellsToRemoveLis,
                                                                                      template (omit) BlackCellsToAddModList p_BlackCellsToAddModList,
                                                                                      template (omit) PhysCellId p_PhysCellId ) :=
  { /* @status    APPROVED */
    measObjectEUTRA := {
      carrierFreq             := p_EUTRA_DL_CarrierFreq,
      allowedMeasBandwidth    := p_MeasurementBandwidth,
      presenceAntennaPort1    := false,
      neighCellConfig         := '01'B,
      offsetFreq              := dB0,
      cellsToRemoveList       := omit,
      cellsToAddModList       := omit,
      blackCellsToRemoveList  := p_BlackCellsToRemoveLis,
      blackCellsToAddModList  := p_BlackCellsToAddModList,
      cellForWhichToReportCGI := p_PhysCellId
    }
  };
  
  //------------------------------------------------
  //measObjectEUTRA.blackCellsToRemoveList
  
  //cs_CellIndexList_1Entry
  template (value) CellIndexList cs_CellIndexList_1Entry( integer p_CellIndex ) := {
    p_CellIndex
  };

  //------------------------------------------------
  //measObjectEUTRA.blackCellsToAddModList
  
  //cs_BlackCellsToAddModList_1Entry
  template (value) BlackCellsToAddModList cs_BlackCellsToAddModList_1Entry(integer p_CellIndex,
                                                                           PhysCellId p_Start,
                                                                           template (omit) PhysCellIdRange.range p_Range) :=
  {
    {
      cellIndex := p_CellIndex,
      physCellIdRange := {
        start_ := p_Start,
        range := p_Range
      }
    }
  };
  
  //------------------------------------------------
  //measObjectToAddMod.measObject(CHOICE: measObjectGERAN)
  
  //cs_MeasObject_measObjectGERAN
  template (value) MeasObjectToAddMod.measObject cs_MeasObject_measObjectGERAN(ARFCN_ValueGERAN p_StartingARFCN,
                                                                               BandIndicatorGERAN p_BandIndicator,
                                                                               template (value) CarrierFreqsGERAN.followingARFCNs p_FollowingARFCNs,
                                                                               template (omit) Q_OffsetRangeInterRAT p_OffsetFreq,
                                                                               template (omit) B8_Type p_NCC_Permitted,
                                                                               template (omit) PhysCellIdGERAN p_CellForWhichToReportCGI) :=
  {
    measObjectGERAN := {
      carrierFreqs := {
        startingARFCN   := p_StartingARFCN,
        bandIndicator   := p_BandIndicator,
        followingARFCNs := p_FollowingARFCNs
      },
      offsetFreq := p_OffsetFreq,
      ncc_Permitted := p_NCC_Permitted,
      cellForWhichToReportCGI := p_CellForWhichToReportCGI
    }
  };
  
  //------------------------------------------------
  //measObjectGERAN.carrierFreqs.followingARFCNs(CHOICE: explicitListOfARFCNs)
  
  //cs_FollowingARFCNs_explicitListOfARFCNs
  template (value) CarrierFreqsGERAN.followingARFCNs cs_FollowingARFCNs_explicitListOfARFCNs( template (value) ExplicitListOfARFCNs p_ExplicitListOfARFCNs) :=
  {
    explicitListOfARFCNs := p_ExplicitListOfARFCNs
  };
  
  //------------------------------------------------
  //measObjectGERAN.carrierFreqs.followingARFCNs(CHOICE: equallySpacedARFCNs)
  
  //cs_FollowingARFCNs_equallySpacedARFCNs
  template (value) CarrierFreqsGERAN.followingARFCNs cs_FollowingARFCNs_equallySpacedARFCNs(integer p_Arfcn_Spacing,
                                                                                            integer p_NumberOfFollowingARFCNs) :=
  {
    equallySpacedARFCNs := {
      arfcn_Spacing := p_Arfcn_Spacing,
      numberOfFollowingARFCNs := p_NumberOfFollowingARFCNs
    }
  };
  
  //------------------------------------------------
  //measObjectGERAN.carrierFreqs.followingARFCNs(CHOICE: variableBitMapOfARFCNs)
  
  //cs_FollowingARFCNs_variableBitMapOfARFCNs
  template (value) CarrierFreqsGERAN.followingARFCNs cs_FollowingARFCNs_variableBitMapOfARFCNs(octetstring p_VariableBitMapOfARFCNs) :=
  {
    variableBitMapOfARFCNs := p_VariableBitMapOfARFCNs
  };
  
  //------------------------------------------------
  //measObjectGERAN.cellForWhichToReportCGI
  
  //cs_PhysCellIdGERAN
  template (value) PhysCellIdGERAN cs_PhysCellIdGERAN(B3_Type p_NetworkColourCode,
                                                      B3_Type p_BaseStationColourCode) :=
  {
    networkColourCode     := p_NetworkColourCode,
    baseStationColourCode := p_BaseStationColourCode
  };
  
  //------------------------------------------------
  //measObjectToAddMod.measObject(CHOICE: measObjectUTRA)
  
  //cs_MeasObject_measObjectUTRA
  template (value) MeasObjectToAddMod.measObject cs_MeasObject_measObjectUTRA(ARFCN_ValueUTRA p_CarrierFreq,
                                                                              template (omit) Q_OffsetRangeInterRAT p_OffsetFreq,
                                                                              template (omit) CellIndexList p_CellsToRemoveList,
                                                                              template (omit) MeasObjectUTRA.cellsToAddModList p_CellsToAddModList,
                                                                              template (omit) MeasObjectUTRA.cellForWhichToReportCGI p_CellForWhichToReportCGI) :=
  {
    measObjectUTRA := {
      carrierFreq := p_CarrierFreq,
      offsetFreq := p_OffsetFreq,
      cellsToRemoveList := p_CellsToRemoveList,
      cellsToAddModList := p_CellsToAddModList,
      cellForWhichToReportCGI := p_CellForWhichToReportCGI
    }
  };
  
  //------------------------------------------------
  //measConfig.reportConfigToRemoveList
  
  //cs_ReportConfigToRemoveList_1Entry
  template (value) ReportConfigToRemoveList cs_ReportConfigToRemoveList_1Entry(ReportConfigId p_ReportConfigId) :=
  { /* @status    APPROVED */
    p_ReportConfigId
  };
  
  //------------------------------------------------
  //measConfig.reportConfigToAddModList
  
  //cs_ReportConfigToAddModList_1Entry
  template (value) ReportConfigToAddModList cs_ReportConfigToAddModList_1Entry(ReportConfigId p_ReportConfigId,
                                                                               template (value) ReportConfigToAddMod.reportConfig p_ReportConfig) :=
  { /* @status    APPROVED */
    {
      reportConfigId := p_ReportConfigId,
      reportConfig   := p_ReportConfig
    }
  };
 
  //cs_ReportConfigToAddModList_2Entries
  template (value) ReportConfigToAddModList cs_ReportConfigToAddModList_2Entries(ReportConfigId p_ReportConfigId_1,
                                                                                 template (value) ReportConfigToAddMod.reportConfig p_ReportConfig_1,
                                                                                 ReportConfigId p_ReportConfigId_2,
                                                                                 template (value) ReportConfigToAddMod.reportConfig p_ReportConfig_2) :=
  { /* @status    APPROVED */
    {
      reportConfigId := p_ReportConfigId_1,
      reportConfig   := p_ReportConfig_1
    },
    {
      reportConfigId := p_ReportConfigId_2,
      reportConfig   := p_ReportConfig_2
    }
  };
  
  //cs_ReportConfigToAddModList_3Entries
  template (value) ReportConfigToAddModList cs_ReportConfigToAddModList_3Entries(ReportConfigId p_ReportConfigId_1,
                                                                                 template (value) ReportConfigToAddMod.reportConfig p_ReportConfig_1,
                                                                                 ReportConfigId p_ReportConfigId_2,
                                                                                 template (value) ReportConfigToAddMod.reportConfig p_ReportConfig_2,
                                                                                 ReportConfigId p_ReportConfigId_3,
                                                                                 template (value) ReportConfigToAddMod.reportConfig p_ReportConfig_3) :=
  {
    {
      reportConfigId := p_ReportConfigId_1,
      reportConfig   := p_ReportConfig_1
    },
    {
      reportConfigId := p_ReportConfigId_2,
      reportConfig   := p_ReportConfig_2
    },
    {
      reportConfigId := p_ReportConfigId_3,
      reportConfig   := p_ReportConfig_3
    }
  };
  
  //------------------------------------------------
  //reportConfigToAddMod.reportConfig (CHOICE: reportConfigEUTRA)
  
  //cs_ReportConfig_reportConfigEUTRA_eventA1_RSRP
  template (value) ReportConfigToAddMod.reportConfig cs_ReportConfig_reportConfigEUTRA_eventA1_RSRP(EUTRA_RS_EPRE_Type p_Thres,
                                                                                                    integer p_Hysteresis,
                                                                                                    TimeToTrigger p_TimeToTrigger,
                                                                                                    ReportConfigEUTRA.triggerQuantity p_TriggerQuantity,
                                                                                                    ReportConfigEUTRA.reportQuantity p_ReportQuantity,
                                                                                                    integer p_MaxReportCells,
                                                                                                    ReportInterval p_ReportInterval,
                                                                                                    ReportConfigEUTRA.reportAmount p_ReportAmount) :=
  { /* @status    APPROVED */
    reportConfigEUTRA := {
      triggerType := {
        event := {
          eventId := {
            eventA1 := {
              a1_Threshold := {
                threshold_RSRP := p_Thres + 140  //Changed back from 141 (CR R5-0904639) to formerly 140, CR R5-100111
              }
            }
          },
          hysteresis := p_Hysteresis,
          timeToTrigger := p_TimeToTrigger
        }
      },
      triggerQuantity := p_TriggerQuantity,
      reportQuantity := p_ReportQuantity,
      maxReportCells := p_MaxReportCells,
      reportInterval := p_ReportInterval,
      reportAmount := p_ReportAmount
    }
  };
  
  //cs_ReportConfig_reportConfigEUTRA_eventA2_RSRP
  template (value) ReportConfigToAddMod.reportConfig cs_ReportConfig_reportConfigEUTRA_eventA2_RSRP(EUTRA_RS_EPRE_Type p_Thres,
                                                                                                    integer p_Hysteresis,
                                                                                                    TimeToTrigger p_TimeToTrigger,
                                                                                                    ReportConfigEUTRA.triggerQuantity p_TriggerQuantity,
                                                                                                    ReportConfigEUTRA.reportQuantity p_ReportQuantity,
                                                                                                    integer p_MaxReportCells,
                                                                                                    ReportInterval p_ReportInterval,
                                                                                                    ReportConfigEUTRA.reportAmount p_ReportAmount) :=
  { /* @status    APPROVED */
    reportConfigEUTRA := {
      triggerType := {
        event := {
          eventId := {
            eventA2 := {
              a2_Threshold := {
                threshold_RSRP := p_Thres + 140  //Changed back from 141 (CR R5-0904639) to formerly 140, CR R5-100111
              }
            }
          },
          hysteresis := p_Hysteresis,
          timeToTrigger := p_TimeToTrigger
        }
      },
      triggerQuantity := p_TriggerQuantity,
      reportQuantity := p_ReportQuantity,
      maxReportCells := p_MaxReportCells,
      reportInterval := p_ReportInterval,
      reportAmount := p_ReportAmount
    }
  };
  
  //cs_ReportConfig_reportConfigEUTRA_eventA3
  template (value) ReportConfigToAddMod.reportConfig cs_ReportConfig_reportConfigEUTRA_eventA3(A3_Offset_Type p_A3_Offset,
                                                                                               boolean p_ReportOnLeave,
                                                                                               integer p_Hysteresis,
                                                                                               TimeToTrigger p_TimeToTrigger,
                                                                                               ReportConfigEUTRA.triggerQuantity p_TriggerQuantity,
                                                                                               ReportConfigEUTRA.reportQuantity p_ReportQuantity,
                                                                                               integer p_MaxReportCells,
                                                                                               ReportInterval p_ReportInterval,
                                                                                               ReportConfigEUTRA.reportAmount p_ReportAmount) :=
  { /* @status    APPROVED */
    reportConfigEUTRA := {
      triggerType := {
        event := {
          eventId := {
            eventA3 := {
              a3_Offset := p_A3_Offset,
              reportOnLeave := p_ReportOnLeave
            }
          },
          hysteresis := p_Hysteresis,
          timeToTrigger := p_TimeToTrigger
        }
      },
      triggerQuantity := p_TriggerQuantity,
      reportQuantity := p_ReportQuantity,
      maxReportCells := p_MaxReportCells,
      reportInterval := p_ReportInterval,
      reportAmount := p_ReportAmount
    }
  };
  
  //cs_ReportConfig_reportConfigEUTRA_periodical
  template (value) ReportConfigToAddMod.reportConfig cs_ReportConfig_reportConfigEUTRA_periodical(ReportConfigEUTRA.triggerType.periodical.purpose p_Purpose,
                                                                                                  ReportConfigEUTRA.triggerQuantity p_TriggerQuantity,
                                                                                                  ReportConfigEUTRA.reportQuantity p_ReportQuantity,
                                                                                                  integer p_MaxReportCells,
                                                                                                  ReportInterval p_ReportInterval,
                                                                                                  ReportConfigEUTRA.reportAmount p_ReportAmount) :=
  { /* @status    APPROVED */
    reportConfigEUTRA := {
      triggerType := {
        periodical := {
          purpose := p_Purpose //enumerated{ reportStrongestCells, reportCGI }
        }
      },
      triggerQuantity := p_TriggerQuantity,
      reportQuantity := p_ReportQuantity,
      maxReportCells := p_MaxReportCells,
      reportInterval := p_ReportInterval,
      reportAmount := p_ReportAmount
    }
  };
  
  //------------------------------------------------
  //reportConfigToAddMod.reportConfig (CHOICE: reportConfigInterRAT)
  
  //cs_ReportConfig_reportConfigInterRAT_periodical
  template (value) ReportConfigToAddMod.reportConfig cs_ReportConfig_reportConfigInterRAT_periodical(ReportConfigInterRAT.triggerType.periodical.purpose p_Purpose,
                                                                                                     integer p_MaxReportCells,
                                                                                                     ReportInterval p_ReportInterval,
                                                                                                     ReportConfigInterRAT.reportAmount p_ReportAmount) :=
  {
    reportConfigInterRAT := {
      triggerType := {
        periodical := {
          purpose := p_Purpose //enumerated{ reportStrongestCells, reportStrongestCellsForSON, reportCGI }
        }
      },
      maxReportCells := p_MaxReportCells,
      reportInterval := p_ReportInterval,
      reportAmount := p_ReportAmount
    }
  };
  
  //------------------------------------------------
  //measConfig.measIdToRemoveList
  
  //cs_MeasIdToRemoveList_1Entry
  template (value) MeasIdToRemoveList cs_MeasIdToRemoveList_1Entry(MeasId p_MeasId) :=
  { /* @status    APPROVED */
    p_MeasId
  };
  
  //cs_MeasIdToRemoveList_2Entries
  template (value) MeasIdToRemoveList cs_MeasIdToRemoveList_2Entries(MeasId p_MeasId_1,
                                                                     MeasId p_MeasId_2) :=
  {
    p_MeasId_1,
    p_MeasId_2
  };
  
  //cs_MeasIdToRemoveList_3Entries
  template (value) MeasIdToRemoveList cs_MeasIdToRemoveList_3Entries(MeasId p_MeasId_1,
                                                                     MeasId p_MeasId_2,
                                                                     MeasId p_MeasId_3) :=
  {
    p_MeasId_1,
    p_MeasId_2,
    p_MeasId_3
  };

  //------------------------------------------------
  //measConfig.measIdToAddModList(.measIdToAddMod)
  
  //cs_MeasIdToAddModList_1Entry
  template (value) MeasIdToAddModList cs_MeasIdToAddModList_1Entry(integer p_MeasId,
                                                                   integer p_MeasObjectId,
                                                                   integer p_ReportConfigId) :=
  { /* @status    APPROVED */
    {
      measId         := p_MeasId,
      measObjectId   := p_MeasObjectId,
      reportConfigId := p_ReportConfigId
    }
  };
  
  //cs_MeasIdToAddModList_2Entries
  template (value) MeasIdToAddModList cs_MeasIdToAddModList_2Entries(integer p_MeasId_1,
                                                                     integer p_MeasObjectId_1,
                                                                     integer p_ReportConfigId_1,
                                                                     integer p_MeasId_2,
                                                                     integer p_MeasObjectId_2,
                                                                     integer p_ReportConfigId_2) :=
  { /* @status    APPROVED */
    {
      measId         := p_MeasId_1,
      measObjectId   := p_MeasObjectId_1,
      reportConfigId := p_ReportConfigId_1
    },
    {
      measId         := p_MeasId_2,
      measObjectId   := p_MeasObjectId_2,
      reportConfigId := p_ReportConfigId_2
    }
  };
  
  //cs_MeasIdToAddModList_3Entries
  template (value) MeasIdToAddModList cs_MeasIdToAddModList_3Entries(integer p_MeasId_1,
                                                                     integer p_MeasObjectId_1,
                                                                     integer p_ReportConfigId_1,
                                                                     integer p_MeasId_2,
                                                                     integer p_MeasObjectId_2,
                                                                     integer p_ReportConfigId_2,
                                                                     integer p_MeasId_3,
                                                                     integer p_MeasObjectId_3,
                                                                     integer p_ReportConfigId_3) :=
  {
    {
      measId         := p_MeasId_1,
      measObjectId   := p_MeasObjectId_1,
      reportConfigId := p_ReportConfigId_1
    },
    {
      measId         := p_MeasId_2,
      measObjectId   := p_MeasObjectId_2,
      reportConfigId := p_ReportConfigId_2
    },
    {
      measId         := p_MeasId_3,
      measObjectId   := p_MeasObjectId_3,
      reportConfigId := p_ReportConfigId_3
    }
  };
  
  //------------------------------------------------
  //measConfig.quantityConfig
  
  //cs_QuantityConfig
  template (value) QuantityConfig cs_QuantityConfig(template (omit) QuantityConfigEUTRA p_QuantityConfigEUTRA,
                                                    template (omit) QuantityConfigUTRA p_QuantityConfigUTRA,
                                                    template (omit) QuantityConfigGERAN p_QuantityConfigGERAN,
                                                    template (omit) QuantityConfigCDMA2000 p_QuantityConfigCDMA2000) :=
  { /* @status    APPROVED */
    quantityConfigEUTRA := p_QuantityConfigEUTRA,
    quantityConfigUTRA := p_QuantityConfigUTRA,
    quantityConfigGERAN := p_QuantityConfigGERAN,
    quantityConfigCDMA2000 := p_QuantityConfigCDMA2000
  };
  
  template (value) QuantityConfig cs_QuantityConfig_Def :=
    /* @status    APPROVED */
    cs_QuantityConfig(cs_QuantityConfigEUTRA(omit, omit),
                      omit,
                      omit,
                      omit);

  //------------------------------------------------
  //quantityConfig.quantityConfigEUTRA
  
  //cs_QuantityConfigEUTRA
  template (value) QuantityConfigEUTRA cs_QuantityConfigEUTRA(template (omit) FilterCoefficient p_FilterCoefficientRSRP,
                                                              template (omit) FilterCoefficient p_FilterCoefficientRSRQ) :=
  { /* @status    APPROVED */
    filterCoefficientRSRP := p_FilterCoefficientRSRP,
    filterCoefficientRSRQ := p_FilterCoefficientRSRQ
  };
  
  //------------------------------------------------
  //quantityConfig.quantityConfigUTRA
  
  //cs_QuantityConfigUTRA
  template (value) QuantityConfigUTRA cs_QuantityConfigUTRA(QuantityConfigUTRA.measQuantityUTRA_FDD p_MeasQuantityUTRA_FDD,
                                                            QuantityConfigUTRA.measQuantityUTRA_TDD p_MeasQuantityUTRA_TDD,
                                                            template (omit) FilterCoefficient p_FilterCoefficient) :=
  {
    measQuantityUTRA_FDD := p_MeasQuantityUTRA_FDD,
    measQuantityUTRA_TDD := p_MeasQuantityUTRA_TDD,
    filterCoefficient := p_FilterCoefficient
  };
  
  //------------------------------------------------
  //quantityConfig.quantityConfigGERAN

  //cs_QuantityConfigGERAN
  template (value) QuantityConfigGERAN cs_QuantityConfigGERAN(QuantityConfigGERAN.measQuantityGERAN p_MeasQuantityGERAN,
                                                              template (omit) FilterCoefficient p_FilterCoefficient) :=
  {
    measQuantityGERAN := p_MeasQuantityGERAN,
    filterCoefficient := p_FilterCoefficient
  };
  
  //------------------------------------------------
  //measConfig.measGapConfig
  
  //cs_MeasGapConfig_setup_gp0
  template (value) MeasGapConfig cs_MeasGapConfig_setup_gp0(GapOffset_Gp0_Type p_GapOffset) :=
  { /* @status    APPROVED */
    setup := {
      gapOffset := {
        gp0 := p_GapOffset
      }
    }
  };
  
  //cs_MeasGapConfig_setup_gp1
  template (value) MeasGapConfig cs_MeasGapConfig_setup_gp1(GapOffset_Gp1_Type p_GapOffset) :=
  {
    setup := {
      gapOffset := {
        gp1 := p_GapOffset
      }
    }
  };
  
  //================================================================
  //UL_DCCH_Message
  
  //cr_MeasurementReport
  template UL_DCCH_Message cr_MeasurementReport(template integer p_MeasId,
                                                template RSRP_Range p_RsrpResult,
                                                template RSRQ_Range p_RsrqResult,
                                                template MeasResults.measResultNeighCells p_MeasResultNeighCells) :=
  { /* @status    APPROVED */
    message_ := {
      c1 := {
        measurementReport := {
          criticalExtensions := {
            c1 := {
              measurementReport_r8 := {
                measResults := {
                  measId := p_MeasId,
                  measResultServCell := {
                    rsrpResult := p_RsrpResult,
                    rsrqResult := p_RsrqResult
                  },
                  measResultNeighCells := p_MeasResultNeighCells
                },
                nonCriticalExtension := * //according to 36.508 4.6.1 table 4.6.1-5
              }
            }
          }
        }
      }
    }
  };

  //------------------------------------------------
  //measurementReport_r8.measResultNeighCells(CHOICE: measResultListEUTRA)
  
  //cr_MeasResultNeighCells_measResultListEUTRA_1Entry
  template MeasResults.measResultNeighCells cr_MeasResultNeighCells_measResultListEUTRA_1Entry(template PhysCellId p_PhysCellId,
                                                                                               template GlobalCellIdentity_Type p_Cgi_Info,
                                                                                               template RSRP_Range p_RsrpResult,
                                                                                               template RSRQ_Range p_RsrqResult) :=
  { /* @status    APPROVED */
    measResultListEUTRA := {
      {
        physCellId := p_PhysCellId,
        cgi_Info   := p_Cgi_Info,
        measResult := {
          rsrpResult := p_RsrpResult,
          rsrqResult := p_RsrqResult
        }
      }
    }
  };
  
  //cr_MeasResultNeighCells_measResultListEUTRA_2Entries
  template MeasResults.measResultNeighCells cr_MeasResultNeighCells_measResultListEUTRA_2Entries(template PhysCellId p_PhysCellId_1,
                                                                                                 template GlobalCellIdentity_Type p_GlobalCellIdentity_EUTRA_1,
                                                                                                 template RSRP_Range p_RsrpResult_1,
                                                                                                 template RSRQ_Range p_RsrqResult_1,
                                                                                                 template PhysCellId p_PhysCellId_2,
                                                                                                 template GlobalCellIdentity_Type p_GlobalCellIdentity_EUTRA_2,
                                                                                                 template RSRP_Range p_RsrpResult_2,
                                                                                                 template RSRQ_Range p_RsrqResult_2) :=
  {
    measResultListEUTRA := {
      {
        physCellId := p_PhysCellId_1,
        cgi_Info   := p_GlobalCellIdentity_EUTRA_1,
        measResult := {
          rsrpResult := p_RsrpResult_1,
          rsrqResult := p_RsrqResult_1
        }
      },
      {
        physCellId := p_PhysCellId_2,
        cgi_Info   := p_GlobalCellIdentity_EUTRA_2,
        measResult := {
          rsrpResult := p_RsrpResult_2,
          rsrqResult := p_RsrqResult_2
        }
      }
    }
  };
  
  //------------------------------------------------
  //measResultEUTRA.cgi_Info
  
  //cr_Cgi_Info_EUTRA
  template GlobalCellIdentity_Type cr_Cgi_Info_EUTRA(template PLMN_Identity p_PLMN_Identity,
                                                     template CellIdentity p_CellIdentity,
                                                     template TrackingAreaCode p_TrackingAreaCode,
                                                     template PLMN_IdentityList2 p_PLMN_IdentityList2) :=
  {
    cellGlobalId := {
      plmn_Identity := p_PLMN_Identity,
      cellIdentity := p_CellIdentity
    },
    trackingAreaCode := p_TrackingAreaCode,
    plmn_IdentityList := p_PLMN_IdentityList2
  };
  
  //------------------------------------------------
  //measurementReport_r8.measResultNeighCells(CHOICE: measResultListUTRA)
  
  //cr_MeasResultNeighCells_measResultListUTRA_1Entry_FDD
  template MeasResults.measResultNeighCells cr_MeasResultNeighCells_measResultListUTRA_1Entry_FDD(template PhysCellIdUTRA_FDD p_PhysCellId,
                                                                                                  template MeasResultUTRA.cgi_Info p_Cgi_Info,
                                                                                                  template UTRA_RSCP_Type p_UTRA_RSCP,
                                                                                                  template UTRA_EcN0_Type p_UTRA_EcN0) :=
  {
    measResultListUTRA := {
      {
        physCellId := {
          fdd := p_PhysCellId
        },
        cgi_Info := p_Cgi_Info,
        measResult := {
          utra_RSCP := p_UTRA_RSCP,
          utra_EcN0 := p_UTRA_EcN0
        }
      }
    }
  };
  
  //cr_MeasResultNeighCells_measResultListUTRA_1Entry_TDD
  template MeasResults.measResultNeighCells cr_MeasResultNeighCells_measResultListUTRA_1Entry_TDD(template PhysCellIdUTRA_TDD p_PhysCellId,
                                                                                                  template MeasResultUTRA.cgi_Info p_Cgi_Info,
                                                                                                  template UTRA_RSCP_Type p_UTRA_RSCP,
                                                                                                  template UTRA_EcN0_Type p_UTRA_EcN0) :=
  {
    measResultListUTRA := {
      {
        physCellId := {
          tdd := p_PhysCellId
        },
        cgi_Info := p_Cgi_Info,
        measResult := {
          utra_RSCP := p_UTRA_RSCP,
          utra_EcN0 := p_UTRA_EcN0
        }
      }
    }
  };
  
  //cr_MeasResultNeighCells_measResultListUTRA_2Entries_FDD
  template MeasResults.measResultNeighCells cr_MeasResultNeighCells_measResultListUTRA_2Entries_FDD(template PhysCellIdUTRA_TDD p_PhysCellId_1,
                                                                                                    template MeasResultUTRA.cgi_Info p_Cgi_Info_1,
                                                                                                    template UTRA_RSCP_Type p_UTRA_RSCP_1,
                                                                                                    template UTRA_EcN0_Type p_UTRA_EcN0_1,
                                                                                                    template PhysCellIdUTRA_TDD p_PhysCellId_2,
                                                                                                    template MeasResultUTRA.cgi_Info p_Cgi_Info_2,
                                                                                                    template UTRA_RSCP_Type p_UTRA_RSCP_2,
                                                                                                    template UTRA_EcN0_Type p_UTRA_EcN0_2) :=
  {
    measResultListUTRA := {
      {
        physCellId := {
          fdd := p_PhysCellId_1
        },
        cgi_Info := p_Cgi_Info_1,
        measResult := {
          utra_RSCP := p_UTRA_RSCP_1,
          utra_EcN0 := p_UTRA_EcN0_1
        }
      },
      {
        physCellId := {
          fdd := p_PhysCellId_2
        },
        cgi_Info := p_Cgi_Info_2,
        measResult := {
          utra_RSCP := p_UTRA_RSCP_2,
          utra_EcN0 := p_UTRA_EcN0_2
        }
      }
    }
  };
  
  //cr_MeasResultNeighCells_measResultListUTRA_2Entries_TDD
  template MeasResults.measResultNeighCells cr_MeasResultNeighCells_measResultListUTRA_2Entries_TDD(template PhysCellIdUTRA_TDD p_PhysCellId_1,
                                                                                                    template MeasResultUTRA.cgi_Info p_Cgi_Info_1,
                                                                                                    template UTRA_RSCP_Type p_UTRA_RSCP_1,
                                                                                                    template UTRA_EcN0_Type p_UTRA_EcN0_1,
                                                                                                    template PhysCellIdUTRA_TDD p_PhysCellId_2,
                                                                                                    template MeasResultUTRA.cgi_Info p_Cgi_Info_2,
                                                                                                    template UTRA_RSCP_Type p_UTRA_RSCP_2,
                                                                                                    template UTRA_EcN0_Type p_UTRA_EcN0_2) :=
  {
    measResultListUTRA := {
      {
        physCellId := {
          tdd := p_PhysCellId_1
        },
        cgi_Info := p_Cgi_Info_1,
        measResult := {
          utra_RSCP := p_UTRA_RSCP_1,
          utra_EcN0 := p_UTRA_EcN0_1
        }
      },
      {
        physCellId := {
          tdd := p_PhysCellId_2
        },
        cgi_Info := p_Cgi_Info_2,
        measResult := {
          utra_RSCP := p_UTRA_RSCP_2,
          utra_EcN0 := p_UTRA_EcN0_2
        }
      }
    }
  };
  
  //------------------------------------------------
  //MeasResultUTRA.cgi_Info
  
  //cr_Cgi_Info_UTRA
  template MeasResultUTRA.cgi_Info cr_Cgi_Info_UTRA(template PLMN_Identity p_PLMN_Identity,
                                                    template CellGlobalIdUTRA.cellIdentity p_CellIdentity,
                                                    template MeasResultUTRA.cgi_Info.locationAreaCode p_LocationAreaCode,
                                                    template MeasResultUTRA.cgi_Info.routingAreaCode p_RoutingAreaCode,
                                                    template PLMN_IdentityList2 p_PLMN_IdentityList2) :=
  {
    cellGlobalId := {
      plmn_Identity := p_PLMN_Identity,
      cellIdentity := p_CellIdentity
    },
    locationAreaCode := p_LocationAreaCode,
    routingAreaCode := p_RoutingAreaCode,
    plmn_IdentityList := p_PLMN_IdentityList2
  };
  
  //------------------------------------------------
  //measurementReport_r8.measResultNeighCells(CHOICE: MeasResultListGERAN)
  
  //cr_MeasResultNeighCells_measResultListGERAN_1Entry
  template MeasResults.measResultNeighCells cr_MeasResultNeighCells_measResultListGERAN_1Entry(template integer p_ARFCN,
                                                                                               template BandIndicatorGERAN p_BandIndicator,
                                                                                               template PhysCellIdGERAN p_PhysCellId,
                                                                                               template MeasResultGERAN.cgi_Info p_Cgi_Info,
                                                                                               template RSSI_Range_Type p_RSSI) :=
  {
    measResultListGERAN := {
      {
        carrierFreq := {
          arfcn := p_ARFCN,
          bandIndicator := p_BandIndicator
        },
        physCellId := p_PhysCellId,
        cgi_Info := p_Cgi_Info,
        measResult := {
          rssi := p_RSSI
        }
      }
    }
  };
  
  //------------------------------------------------
  //MeasResultGERAN.cgi_Info
  
  //cr_Cgi_Info_GERAN
  template MeasResultGERAN.cgi_Info cr_Cgi_Info_GERAN(template PLMN_Identity p_PLMN_Identity,
                                                      template CellGlobalIdGERAN.locationAreaCode p_LocationAreaCode,
                                                      template CellGlobalIdGERAN.cellIdentity p_CellIdentity,
                                                      template MeasResultGERAN.cgi_Info.routingAreaCode p_RoutingAreaCode ) :=
  {
    cellGlobalId := {
      plmn_Identity := p_PLMN_Identity,
      locationAreaCode := p_LocationAreaCode,
      cellIdentity := p_CellIdentity
    },
    routingAreaCode := p_RoutingAreaCode
  };
  
  
  //****************************************************************
  //Templates defined in 36.508
  //****************************************************************
  
  //------------------------------------------------
  //Table 4.6.6-1A: MeasGapconfig-GP1
  template (value) MeasGapConfig cs_508_MeasGapConfig_GP1 :=
    /* @status    APPROVED */
    cs_MeasGapConfig_setup_gp0( 0 );//TGRP = 40ms
  
  //------------------------------------------------
  //Table 4.6.6-1A: MeasGapconfig-GP2
  template (value) MeasGapConfig cs_508_MeasGapConfig_GP2 :=
    cs_MeasGapConfig_setup_gp1( 0 );//TGRP = 80ms
  
  //------------------------------------------------
  //Table 4.6.6-2: MeasObjectEUTRA-GENERIC(Freq)
  template (value) MeasObjectToAddMod.measObject cs_508_MeasObjectEUTRA_GENERIC(ARFCN_ValueEUTRA p_EUTRA_DL_CarrierFreq,
                                                                                AllowedMeasBandwidth p_MeasurementBandwidth ) :=
    cs_MeasObject_measObjectEUTRA_Common( p_EUTRA_DL_CarrierFreq, p_MeasurementBandwidth, omit, omit, omit );
  
  //------------------------------------------------
  //Table 4.6.6-2A: MeasObjectGERAN-GENERIC(Freq)
  template (value) MeasObjectToAddMod.measObject cs_508_MeasObjectGERAN_GENERIC(ARFCN_ValueGERAN p_StartingARFCN,
                                                                                BandIndicatorGERAN p_BandIndicator,
                                                                                template (value) ExplicitListOfARFCNs p_ExplicitListOfARFCNs) :=
    cs_MeasObject_measObjectGERAN(p_StartingARFCN,
                                  p_BandIndicator,
                                  cs_FollowingARFCNs_explicitListOfARFCNs( p_ExplicitListOfARFCNs ),
                                  omit, omit, omit);
  
  //------------------------------------------------
  //Table 4.6.6-3: MeasObjectUTRA-GENERIC(Freq)
  template (value) MeasObjectToAddMod.measObject cs_508_MeasObjectUTRA_GENERIC(ARFCN_ValueUTRA p_Freq) :=
    cs_MeasObject_measObjectUTRA( p_Freq, 0, omit, omit, omit );
  
  //------------------------------------------------
  //Table 4.6.6-4: ReportConfigEUTRA-A1(Thres)
  template (value) ReportConfigToAddMod.reportConfig cs_508_ReportConfigEUTRA_A1(EUTRA_RS_EPRE_Type p_Thres ) :=
    cs_ReportConfig_reportConfigEUTRA_eventA1_RSRP( p_Thres, 0, ms256, rsrp, both, 1, ms1024, r1 ); //Changed from infinity_ to r1, see also CR R5-093093

  //------------------------------------------------
  //Table 4.6.6-5: ReportConfigEUTRA-A2(Thres)
  template (value) ReportConfigToAddMod.reportConfig cs_508_ReportConfigEUTRA_A2(EUTRA_RS_EPRE_Type p_Thres ) :=
    cs_ReportConfig_reportConfigEUTRA_eventA2_RSRP( p_Thres, 0, ms320, rsrp, both, 1, ms1024, r1 ); //Changed from infinity_ to r1, see also CR R5-093093

  //------------------------------------------------
  //Table 4.6.6-6: ReportConfigEUTRA-A3
  template (value) ReportConfigToAddMod.reportConfig cs_508_ReportConfigEUTRA_A3 :=
    /* @status    APPROVED */
    cs_ReportConfig_reportConfigEUTRA_eventA3( 0, false, 0, ms640, rsrp, both, 1, ms1024, r1 ); //Changed from infinity_ to r1, see also CR R5-093093

  //------------------------------------------------
  //Table 4.6.6-7: ReportConfigEUTRA-PERIODICAL
  template (value) ReportConfigToAddMod.reportConfig cs_508_ReportConfigEUTRA_Periodical :=
    /* @status    APPROVED */
    cs_ReportConfig_reportConfigEUTRA_periodical( reportStrongestCells, rsrp, both, 1, ms1024, infinity_ );

  //------------------------------------------------
  //Table 4.6.6-7E: ReportConfigInterRAT-B2-GERAN(EUTRA-Thres, GERAN-Thres)
  template (value) ReportConfigToAddMod.reportConfig cs_508_ReportConfigInterRAT_B2_GERAN(EUTRA_RS_EPRE_Type p_EUTRA_Thres,
                                                                                          GERAN_RSSI_dBm_Type p_GERAN_Thres) :=
  {
    reportConfigInterRAT := {
      triggerType := {
        event := {
          eventId := {
            eventB2 := {
              b2_Threshold1 := {
                threshold_RSRP := p_EUTRA_Thres + 140 //Changed back from 141 (CR R5-0904639) to formerly 140, CR R5-100111
              },
              b2_Threshold2 := {
                b2_Threshold2GERAN := p_GERAN_Thres + 110
              }
            }
          },
          hysteresis := 0,  //TBD!!!! FFS according to 36.508 R5-092720
          timeToTrigger := ms0
        }
      },
      maxReportCells := 6,
      reportInterval := ms1024,
      reportAmount := r1  //Changed from infinity_ to r1, see also CR R5-093093
      
    }
  };
  
  //------------------------------------------------
  //Table 4.6.6-8: ReportConfigInterRAT-B2-UTRA(EUTRA-Thres, UTRA-Thres)
  template (value) ReportConfigToAddMod.reportConfig cs_508_ReportConfigInterRAT_B2_UTRA_ConditionFDD(EUTRA_RS_EPRE_Type p_EUTRA_Thres,
                                                                                                      UTRA_Ec_Io_dB_Type p_UTRA_Thres) :=
  {
    reportConfigInterRAT := {
      triggerType := {
        event := {
          eventId := {
            eventB2 := {
              b2_Threshold1 := {
                threshold_RSRP := p_EUTRA_Thres + 140  //Changed back from 141 (CR R5-0904639) to formerly 140, CR R5-100111
              },
              b2_Threshold2 := {
                b2_Threshold2UTRA := {
                  utra_EcN0 := p_UTRA_Thres * 2 + 49
                }
              }
            }
          },
          hysteresis := 3,
          timeToTrigger := ms0
        }
      },
      maxReportCells := 6,
      reportInterval := ms1024,
      reportAmount := r1 //Changed from infinity_ to r1, see also CR R5-093093
    }
  };
  
  //------------------------------------------------
  //Table 4.6.6-8: ReportConfigInterRAT-B2-UTRA(EUTRA-Thres, UTRA-Thres)
  template (value) ReportConfigToAddMod.reportConfig cs_508_ReportConfigInterRAT_B2_UTRA_ConditionTDD(EUTRA_RS_EPRE_Type p_EUTRA_Thres,
                                                                                                      UTRA_RSCP_dBm_Type p_UTRA_Thres) :=
  {
    reportConfigInterRAT := {
      triggerType := {
        event := {
          eventId := {
            eventB2 := {
              b2_Threshold1 := {
                threshold_RSRP := p_EUTRA_Thres + 140  //Changed back from 141 (CR R5-0904639) to formerly 140, CR R5-100111
              },
              b2_Threshold2 := {
                b2_Threshold2UTRA := {
                  utra_RSCP := p_UTRA_Thres + 115
                }
              }
            }
          },
          hysteresis := 3,
          timeToTrigger := ms0
        }
      },
      maxReportCells := 6,
      reportInterval := ms1024,
      reportAmount := r1 //Changed from infinity_ to r1, see also CR R5-093093
    }
  };

  //------------------------------------------------
  //Table 4.6.6-9: ReportConfigInterRAT-PERIODICAL
  template (value) ReportConfigToAddMod.reportConfig cs_508_ReportConfigInterRAT_PERIODICAL :=
  {
    reportConfigInterRAT := {
      triggerType := {
        periodical := {
          purpose := reportStrongestCells
        }
      },
      maxReportCells := 1,
      reportInterval := ms1024,
      reportAmount := infinity_
    }
  };

  //****************************************************************
  // Templates used in other files
  //****************************************************************
  
  //------------------------------------------------
  //cs_Measurement_Config_A3
  //8_2\RRC_Handover
  template (value) MeasConfig cs_Measurement_Config_A3(ARFCN_ValueEUTRA p_EUTRA_DL_CarrierFreq,
                                                       AllowedMeasBandwidth p_MeasurementBandwidth,
                                                       template (omit) MeasGapConfig p_MeasGapConfig := omit) :=
    /* @sic R5s100477 Additional Changes: merge of cs_Measurement_Config_A3 and cs_MeasConfig_A3_InterFreq_UTRAN sic@ */
    /* @status    APPROVED */
    cs_MeasConfig(omit,
                  cs_MeasObjectToAddModList_1Entry(1,
                                                   cs_MeasObject_measObjectEUTRA_Common(p_EUTRA_DL_CarrierFreq,
                                                                                        p_MeasurementBandwidth,
                                                                                        omit,
                                                                                        omit,
                                                                                        omit)),
                  omit,
                  cs_ReportConfigToAddModList_1Entry(1, cs_508_ReportConfigEUTRA_A3),
                  omit,
                  cs_MeasIdToAddModList_1Entry( 1, 1, 1 ),
                  -,
                  p_MeasGapConfig);
  
} //end of module
